y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

PHPのバージョン互換で右往左往

とあるレンタルサーバホスティングする前提で作成・テストしたプログラムを、社内のCentOS仮想サーバ上に移設した際の事。
元の(開発・テスト時の)PHPバージョンが5.2.17、CentOS5.3上のPHPバージョンが5.1.6であったのだが
どうもグローバル周り(REQUESTを使っている部分でエラーが続出)やdate_format()、json_encode()が使えない。
プログラムに手を入れると、システムテストとか運用テストとか手数がかかるので、環境を変えてしまうことにした。
・・でCentOS5.3にPHPの5.2以上を入れるための情報を漁る

こんなありがたい情報が。
CentOS 5.3 に PHP 5.3 をインストールする
yum --enablerepo=remi,epel update mysql*
この手順に従うと、リポジトリを更新し、mysqlのアップデートを掛けてから、phpにアップデートが掛かる。

php.iniでグローバル変数(register_global、register_long_arrays)周りをOFFに変更して、セキュリティを確保。
date.timezone="Asia/Tokyo"と指定しておかないと、date_create()でエラーが出る。
それから、PHP5.3からはsplit()が使えなくなって、explode()とかpreg_split()などで代替する必要があるとのことで、そのあたりをごにょごにょと書き換えた。(正規表現を使う必要がないので、explodeで代用)

プログラムが動くようになって、何となくやり遂げた感。
その他、mysqlを使った他のシステムで影響が無いかが不安だったのだが、WordpressMovableTypephpMyAdminなど、全部正しく動いた(っぽい)

オッケー!!