本家のお世話-#109。(PHP 5.5.16 から PHP 5.6.0 への移行)

 予定通りというか, Aug-27 21:52:22 に Windows 版の PHP5.6.0 が出た。ここのところよくあるのだが, php.net より半日ばかり早かった。そんなわけで,今日の午後, PHP 5.5.16 から PHP 5.6.0 に移行した (Windows7 HP + SP1 (x86))。で, ChangeLog

 「PHP 5.6.x にしても,現在のコードはほぼそのままで動きます。ほんのわずか,考慮すべき few incompatibilitiesnew features がありますので,これについては,バージョン変更の前にテストしておいてください」ということらしいのだが,うちの環境でも,コードの書き換えは特に必要なかった。もっとも,我が家の場合は, PHP 5.5.16 から PHP 5.6.0 だから,すごく古いバージョンからとなれば,それなりに対処が必要になる。

 そうは言いつつ, php.ini はだいぶ変えた。というのが, PHP 5.6.0 ではデフォルトで UTF-8 になったので, mbstring についての細かいカスタマイズはいらないだろうと思ったからだ。

【注】 ところで,PHP スクリプトの開発環境を作るのでない限りは, php.ini の元ファイルには, php.ini-production INI file を使うべきである。これは,オフィシャルの INI 内にちゃんと書いてあるのだが,いまだに php.ini-development INI file の使用を勧めているサイトもあって,困ったもんだと思っていたので,この際明記しておく。

 以下に今回作った PHP 5.6.0 用の php.ini の変更点を示す。 Drive_SV はサーバソフト用のパーティションである。

  デフォルト カスタム
1 output_buffering = 4096 output_buffering = Off
2 disable_functions = disable_functions =”shell_exec, suexec, passthru, phpinfo”
3 expose_php = On expose_php = Off
4 ; extension_dir = "ext" extension_dir = "Drive_SV:\PHP\ext\"
5 allow_url_fopen = On allow_url_fopen = Off
6 ;extension=php_curl.dll extension=php_curl.dll
7 ;extension=php_gd2.dll extension=php_gd2.dll
8 ;extension=php_mbstring.dll extension=php_mbstring.dll
9 ;extension=php_mysqli.dll extension=php_mysqli.dll
10 ;extension=php_openssl.dll extension=php_openssl.dll
11   zend_extension= "Drive_SV:\PHP\ext\php_opcache.dll"
12 ;date.timezone = date.timezone ="Asia/Tokyo"
13 ;sendmail_from = me@example.com sendmail_from = My email address
14 mysql.allow_persistent = On mysql.allow_persistent = Off
15 ;opcache.enable=0 opcache.enable=1
16 ;opcache.memory_consumption=64 opcache.memory_consumption=128
17 ;opcache.interned_strings_buffer=4 opcache.interned_strings_buffer=8
18 ;opcache.max_accelerated_files=2000 opcache.max_accelerated_files=4000
19 ;opcache.revalidate_freq=2 opcache.revalidate_freq=60
20 ;opcache.fast_shutdown=0 opcache.fast_shutdown=1

 1 と 14 の設定はサーバの環境によっては,不具合が生じることがあるかもしれない。 11 および 15 – 20 は OPcache のためなので, OPcache を使わない場合は,デフォルトのままでよい。移行から1日。 php_opcache.dll でエラー頻発。解決策がわかるまで使用中止にした。 mbstring の細かい設定を変えたことで,何か影響が出るかなぁ。様子見の予定。

 MySQL Extension は使うのをやめた。うちの環境だと,もう MySQLi Extension だけでいいようだ。

 現時点の自鯖の環境。

 おっと,書き忘れるとこだったが,今回,実は,「Bad Host request」が出た。犯人は, BulletProof Security だった(爆笑)。そんなわけで,1回ヤツを停止後, PHP を移行し,改めて有効にした。これはぬれぎぬ。犯人は, php_opcache.dll だった。 BulletProof Security くん,ごめんなさい。