最近すっかり完全放置状態の自サービス創作小説投稿コミュニティー - ぱろしょだが、サーバーホスティング元にてソフトウェアの一斉バージョンアップメンテナンスが行われるとのことで、影響確認テストを行った。
- 最新版のXAMPP導入。PHPとApacheのみ使用。MySQLはバージョンアップなしなので、別環境にある既存のMySQLを使用。
- 本番データのバックアップをMySQLに投入して、各機能打鍵確認
- (ついで)全ファイルの文字コードと改行コードを再確認し、統一した。従来はFTP時に変換をしていたが、変換忘れたりすると面倒なので。今後はバイナリ転送一本である
現新の環境はまとめるとこんな感じ。
環境 | PHP | Apache | MySQL |
---|---|---|---|
現行 | 5.2.x | 1.3 | 5.1.22 |
検証環境*1 | 5.5.11 | 2.4.9 | 5.1.73 |
新環境 | 5.3.x | 2.4.9 | 5.1.73 |
検証環境のバージョンがやたら高いが、個別に用意するのが面倒なのと、PHP: PHP 5.4.x における変更点、PHP: PHP 5.5.x における変更点を見た感じ、5.3から5.5の間に戻された仕様はなさそうなのでまあいいかと判断。でもさすがにノーチェックは怖いので、無影響確認のつもりで全画面一通り打鍵した。
で、下記のような問題を発見。対処した。
- ereg系正規表現をpregに変更(ereg系は5.3.0で非推奨。警告出力される)
- strlen関数に配列が渡された場合の仕様変更(従来は配列が渡ると文字列"Array"が渡されたものとして動作)により、自作関数の挙動に影響が出た。従来の仕様と同じになるようコードを修正
- PHP開始タグが「<?」であるものを「<?php」に修正
最後のものはPHP 5.3とは関係なくphp.iniの設定の問題だが、個人的にはもとより<?phpで統一していたつもりだっただけに発見したときは驚いた。n年越しの潜在バグというやつだ。動作しているPHPファイルをそのまま食わせただけなのに構文エラーとなり、発見に苦労した。括弧の数があっているか追うために<?でソースを検索していたときに偶然見つけたのだ。いやはや。
これでとりあえずは安心と思っているが、バージョンアップから数日はチェックが必要かな。仕事が立て込んでいるので、何かあったら睡眠時間を削る羽目になる可能性が高い。ホント、ソフトウェアのバージョンアップ問題は頭が痛い。
*1:XAMPP 1.8.3