phpのバージョンアップ 4.4 から 5.6 まで一気に駆け上がってみた件


過日、wordpressに移転したことを何度もお伝えしてきましたが
その際に、必須だったphpのバージョンアップも行いました。

具体的には、4.4 から 5.6 まで一気に駆け上がりました。

おすすめ:php7へのバージョンアップ記事

そう、なんと2019年1月までphp4系を使ってたんですよ。
ありえないでしょ。自分でもそう思いますから。

ただただ面倒くさかった。理由はそれだけ。

でもどうしてもブログをwordpressに移転したくて。
重い重い腰をあげて、phpのバージョンアップへ。

なぜ腰が重いかというと、そりゃあ一つしかありません。
phpのバージョンを上げると、プログラムに影響がでるから。

僕が自作した適当なプログラムを、
ブログ表示の一部や、プライベートなツールとして
日常的に運用しているものが動かなくなるため、です。

当ブログは、さくらインターネットで運用していますが、
さくらインターネットでは、
2019年1月現在では、以下のphpバージョンへの切り替えが可能になっています。

– PHP 7.2
PHP 5.6(2018/12 サポート終了予定)【ここまで駆け上がった】
– PHP 5.4(サポート終了)
– PHP 5.3(サポート終了)
– PHP 5.2(サポート終了)
PHP 4.4(サポート終了)【ここから】

バージョンアップに際しては、
4.4~5.6にいたるまで、段階的にバージョンをあげてゆき、
phpプログラムの動作確認をしていきました。

サーバ移転の際は、とにかく時間との戦いで、
まとめる時間もなく、とりあえず、動くようにプログラムを修正していきました。

今日はそのときを思い出して、
バージョンアップのときに、必要だった修正なんかを
おぼえてる範囲で思い出しながら、メモがてら書いておきます。

詳しく書く気力がないので、
対応した内容と、ざっぱな解説メモだけのこしておき、
気が向いたら詳細を書き加えるようにします。

php4.4から5.2へのバージョンアップの際に対応した内容

修正ファイル:php.ini

対応内容:以下を追記
allow_url_include = ON
default_charset = SJIS

おおざっぱな解説:
php5から、allow_url_includeをオンにしないと、
外部URLからコンテンツをとってこれなくなったので、オンにする内容を追記。
default_charsetで、デフォルト文字コードの設定がないとダメになったよう。

php5.2から5.3へのバージョンアップの際に対応した内容

修正ファイル:php.ini

対応内容:以下を追記
date.timezone = “Asia/Tokyo”

おおざっぱな解説:
デフォルトタイムゾーンの設定が必要になったらしい。

php5.3 から5.4(5.6)へのバージョンアップの際に対応した内容

修正ファイル:自作のphpプログラムファイル

対応内容:以下をコメントアウト
//$message = stripslashes($message);

おおざっぱな解説:
関連するワードは マジッククオート 5C問題。

マジッククオートとは、PHP スクリプトに入力されるデータを
自動的にエスケープするphpの機能であり、歴史的にこれまでは使われてきたが、
php5.4で廃止されることになった。移植性などの理由から。

マジッククオート機能は便利であるが、
意図せずエスケープされる場合に手動でエスケープを戻すために
stripslashes関数を使っていた。

だが、マジッククオート機能が廃止になったため、
stripslashes関数は不要になったのだが、処理はそのまま残っていたので
phpバージョンアップ後、ぼくのプログラムで、
フォーム送信した日本語で、5C問題に絡む 申 や ソ といった
特定の文字のみ文字化けするようになった。

なので、stripslashesの処理をしていた行をコメントアウトした。

。。。こんなところです。

あとがき

php7まで行こうと思ったのですが、
5.6へのバージョンアップ修正で力尽きたところです。

いつまでも php4を残しておいてくださる、
さくらインターネットさんには感謝しかなかったのですが、
とりあえず、5の最新版までは上がれたので、
とりあえず一息、あんしんしています。

7へのバージョンアップも、必要に迫られないと
やらんでしょうね(笑)

いじょう。

追記:php7へバージョンアップしました。
そしたら劇的にパフォーマンス改善しました!

この記事は役に立ちましたか? 役立った 役立たなかった
0 人中 0 人がこの記事は役に立ったと言っています。

レクタングルWset