予定通りというか, 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 incompatibilities と new 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:PHPext" |
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:PHPextphp_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 くん,ごめんなさい。