Webページコントローラー

【Webページコントローラー】の通信をSSLへ

2018年11月01日
ネットビジネス便利ツール】をSSL化したので、各ツールの通信もSSLに対応させることにしました。
もう少しゆっくり対応させる予定だったのですが、よい機会かもしれません。

言語はPHPです。
【cURL】関数と【fsockopen】関数どちらを使うか、レンタルサーバーによっては【cURL】関数がインストールされていないかもしれないので(私が使っているサーバーはオプションです)両方使うことも考えました。
今までは【fsockopen】関数を使っていて、通信ができないという現象はなかったので、【fsockopen】関数を使うことにしました。
OpenSSLがPHPから利用できるように組み込まれていなかったらエラーになるので、そのときは仕方ないので非SSLで通信します。ですが今どきなので利用できるでしょう。

非SSL
$fp = fsockopen("www.example.des", 80, $errno, $errmsg, 30);

SSL通信はホスト名の先頭に【ssl://】を付けます。
$fp = fsockopen("ssl://www.example.des", 80 $errno, $errmsg, 30);
いざ通信!

・・・繋がらない。

そうでした、SSL通信はポート番号が80番ではなく443番でした。

$fp = fsockopen("ssl://www.example.des", 443 $errno, $errmsg, 30);

繋がりました。

ずっと以前にコーディングしたのに、忘れていました。時々は使って思い出さないといけませんね。

第一号で【Webページコントローラー】に組み込みました。

DIY

家の中を少し秋へ

2018年10月30日
ツールの改修に戻りますと言ってからはや1週間。。。。。まだサイトの移行をやっていました。
移行そのものではなく、ソースを改善していました。
そしてセキュリティの勉強も少々。

移行終了して、今度こそツールのソース改修に戻ります!!
まだまだサイトのソースも改善しないといけないのですが、販売しているツールの方が優先順位が高いので、一旦打ち切ります。


ここ二週間ほどサイトの移行に、その前は販売ツールの改善に勤しんでいたせいで、家の中が荒れてきてしまいました。
ニトリのTV CMでは『冬のインテリアに・・』なんて流れていますが、家はまだ夏だぁ。こたつのCMもよく流れているようですね。インテリアを早く秋にしなくては、直ぐに冬になってしまいそうです。

ということで、今日はコーディングの手は少し緩めて、家の中を少し秋にしました。
リビングの猫のパズルを秋っぽい物へしてみました。


写真 写真


写真 写真

トロが浮き輪を持って浮いているコップはしまいます。
写真
代わりにこちらのフィギュアを。
写真
以前アンに落とされて首がもげたフィギュアです。 ⇒ 落とされて首が・・・

サーバー

完全移行完了です

2018年10月24日
数日前から行っていたサイトの新環境への移行が完了しました。
ネットビジネス便利ツール
昨日、後は新旧を切り替えるだけと書きましたが、今日早くに切り替えました。

と言っても見た目はほぼ変わりません。URLがhttpからhttpsへ変わったくらいです。

行なったのは
SSL化、
ページの文字コードをUTF-8へ、
html5へ、
PHP7へバージョンアップとそれに伴うMySQL関係のソース書き換え、
PostgreSQLの移行(バージョンアップと文字コード変更)、
です。一番大変だったのは・・・ううんなんだろう。
そうだ、テストデータの用意、ですね。

一見動いているように見えても、どこかでエラーが起きていてはいけないので、テストサイトでテストをするのですが、そのデータを用意するのが大変でした。
まさか本番のデータでテストするわけにもいきませんので、でもきちんとデータを作らないと動かない箇所が沢山あるのです。

こういうとき、色々な所を自動化していると大変です。自動にしているソースを見直すのがではなく、自動にすることでデータの動きを自分自身も忘れてしまっているので、思い出して、テストデータを作るのが大変でした。

少々疲れました。
しかも「やった~、終わった!!」ではなく「うん、きっとこれで大丈夫。」という状況なので、今一晴れ晴れしません。

そろそろツールのソースの改修に戻ります。

サーバー

【.forward】からphp.iniを指定してPHPを実行

2018年10月23日
先日からやっているサイトの
SSL化、
ページの文字コードをUTF-8へ、
html5へ、
PHP7へバージョンアップ、
PostgreSQLの移行(バージョンアップと文字コード変更)、
とほぼ全ての環境が変わってしまう移行がほぼ終わりました。
変わらなかったのはMySQLだけです。でもPHPのバージョンアップに伴い、MySQL関係がかなり変わったので、MySQLまで変わった気分です。

テストサイトでの動作確認は終了し、後は本番サイトとテストサイトとを切り替えます。
切り替え前に再度データの同期を取らなくてはいけません。
ドキドキします。


サイトをSSL化したので、ついでにPOSTしている部分をSSLに書き換えました。

ツールが売れたら、自分自身にもメール送信し、特定のメールボックスで受信します。
そのメールボックスにメールが届くとPHPを起動し、処理を行います。
PHPの起動は【.forward】で行います。
私が利用しているレンタルサーバーの場合、SSLを利用するには拡張モジュールを【php.ini】に記述しておかなければいけません。
ここでハマりました。どうしても読み込んでくれなかったのです。
もちろん私の勘違いで読み込まなかったのですが。。。分かってしまえばなんでもないところで、つまづきました。何を勘違いしていたかは恥ずかしいので内緒です。


【.forward】
"| exec /usr/local/bin/php -q -c/home/xxx/.php/php.ini /home/xxx/yyy/run.php"

【/usr/local/bin/php】はPHPのパス、サーバーによってはPHPのバージョンを指定できます。
【/home/xxx/.php/】ディレクトリ下の【php.ini】を読み込んで、【/home/xxx/yyy/run.php】を実行します。
私も初めは間違えていましたが、【php.ini】を指定している部分【-c/home/xxx/.php/php.ini】の【-c】の後ろにスペースは入りません。


説明を読んでも勘違いが解けず行き詰まってコーヒーを入れていたら、突然ポワッとcronの設定が目の前に浮かんできて解決できました。

SQL

MySQLがガラリと変わっていました

2018年10月22日
まだ完全移行ではありませんが、一応【ネットビジネス便利ツール】のSSL化とSQLサーバーの文字コード変換が終わりました。動いていない箇所の修正には時間がかかるので、とりあえず非SSLで動かします。

何度もテストをするのは面倒なので、ページそのものをUTF-8へ、html5へ変更しました。

そしてPHPもバージョン5から7へ移行しています。

その関係で久々にMySQLの部分のPHPのソースを触ることになりました。
PHP7ではmysqlが使えなくなっています。何かで読んで知ってはいましたが、そうですね、修正しなくてはいけませんね。

調べたらmysqliかPDOを使うことになるとのこと。mysqliを使うことにしました。
参考になるのは、もちろん本家本元のマニュアルと、
MySQL 改良版拡張モジュール

ここがわかりやすかったです。
mysqlからmysqliへの書き換え方法

意外にハマってしまったのが、文字コードです。
MySQLもWebページもUTF-8にしているのに化けてしました。古いmysqlのソースを見ていると文字コードを指定していました。そう言えばそうでした(このブログでも書いていました・・・MySQLの文字化け)。
mysqliでは
mysqli_set_charset($objMySQLConID, "UTF8");
です。UTF-8ではなく、UTF8で指定します。

テスト環境で色々触っているのですが、完全に本番と同じではないことでエラーになったり、バグも見つけてしまったりとなかなか前に進めません。
自分が何をやっているのか、わからなくなりそうです。

さあ、また明日続きをやろう。

SQL

PostgreSQLのパスワード

2018年10月21日
SQLデータベースの文字コードを変更するため、新しい文字コードUTF-8でデータベースを作って全移動しています。
データベースが変わるので、cronで動かしているバックアップ(ダンプ)やバキューム(最適化)を変更しなくてはいけません。

cronから実行する場合、パスワードを入力できないので、【.pgpass】にIDやパスワード記録して、そこから読み込んで使います。

ホスト名:ポート番号:データベース名:ユーザ名:パスワード
を【.pgpass】に保存してホームディレクトリにアップロード、パーミッションを600にします。

これでcronからバックアップや最適化が可能になります。
副産物で、タームミナルエディタから接続する時も、PHPなどのソースでもパスワードを入力しなくてよくなります。

【.pgpass】には複数のデータベースのパスワードを保存できます。
【*】も使用可能です。どれでもOKの時は使用します。

PostgreSQL 9.3.2文書 - パスワードファイル

例1
*:*:db01:user1:pass1
*:*:db02:user1:pass2

例2
*:*:*:*:pass3

パスワードは平文で保存されますが、パーミッションが600ですし、大丈夫ということなんでしょう。でもファイルが流出したら困りますよね。

サーバー

特定のURLを除外してリダイレクト

2018年10月20日
3日間片頭痛で伸びていました。今回は薬があまり効かず、しんどかった。今日はやっとまともに活動できました。
片頭痛で吐き気がしている間は、指一本でも動かすと強烈な吐き気にくるので、ピクリとも動けません。そのせいで無理な姿勢で寝ていたのでしょうか、左腕がピクピクし始めてしまい、治まる気配がありません。ああ、鬱陶しい。


WebサイトのSSL化で、何か忘れている気がすると書きました。忘れていたわけではないのですが、テスト漏れがありました。すっかりテストした気になっていました。ご迷惑をおかけしてしまったユーザー様、申し訳ございません。

これからまだツールのソースを変更するので(サイトのSSLはそのままですが)、【.htaccess】のRewriteRuleを書き換えました。
特定のURLを除外して、httpsに301リダイレクトします。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/abcdefg.php$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://engineer.ns-it.net/$1 [R=301,L]

http://engineer.ns-it.net/abcdefg.php へのアクセスはそのままhttpで、それ以外はhttpsへ301リダイレクトします。
【.htaccess】は【engineer.ns-it.net】の下へアップロードです。

RewriteCond %{REQUEST_URI} !^/abcdefg.php$

RewriteCond %{REQUEST_URI} !(.*/abcdefg.php$)
でもOKを確認しました。
2018年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
先月
来月
カテゴリ
検索
関連サイト
プロフィール
【ネットネーム】
みゅー

キャラクター by ツカエルサイト


【趣味】
・プログラミング
・写真
・楽器演奏
・手芸
・日曜大工
・家の中の不便を便利に
・考える
・自然科学
・猫と戯れる
・ジグソーパズル

【仕事】
・派遣社員でSE・PGやっていました。次の良い仕事がみつからないので、ビジネスへ注力しようと思っています。
・経験言語:VB6、VB.NET、PHP、Perl、JAVA、Oracle、SQLServer、PostgreSQL



【名前】
アン(足)

2014年4月22日生まれ 女の子
あだ名は くノ一
普段は普通にしゃべりますが、興奮すると『ニャ』を連発します

【趣味】
・狩
・ご飯を食べる
・ママのお手伝い

【仕事】
ママのビジネスの看板招き猫
ママの代わりにPC入力
仕事中のママの右腕を温める
ママに心配をかける
いろんな事をしでかしてママを退屈させない

RSSフィード
Tweet