予定通りというか, 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 | ||
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 | |
16 | ;opcache.memory_consumption=64 | |
17 | ;opcache.interned_strings_buffer=4 | |
18 | ;opcache.max_accelerated_files=2000 | |
19 | ;opcache.revalidate_freq=2 | |
20 | ;opcache.fast_shutdown=0 |
1 と 14 の設定はサーバの環境によっては,不具合が生じることがあるかもしれない。 11 および 15 – 20 は OPcache のためなので, OPcache を使わない場合は,デフォルトのままでよい。移行から1日。 php_opcache.dll でエラー頻発。解決策がわかるまで使用中止にした。 mbstring の細かい設定を変えたことで,何か影響が出るかなぁ。様子見の予定。
MySQL Extension は使うのをやめた。うちの環境だと,もう MySQLi Extension だけでいいようだ。
現時点の自鯖の環境。
- Windows7HP+SP1(x86)
- Apache 2.4 Win32 Apache Lounge から
- ActivePerl 5.18(x86) ActiveState から
- PHP 5.6(x86) PHP.net から
- MariaDB 10.0 Win32 MariaDB.ORG から
おっと,書き忘れるとこだったが,今回,実は,「Bad Host request」が出た。犯人は, BulletProof Security だった(爆笑)。そんなわけで,1回ヤツを停止後, PHP を移行し,改めて有効にした。これはぬれぎぬ。犯人は, php_opcache.dll だった。 BulletProof Security くん,ごめんなさい。
「本家のお世話-#109。(PHP 5.5.16 から PHP 5.6.0 への移行)」への5件の返信
おはようございます。
うちはまだphp5.5です。まだパッケージがRC4のまま
休み中になるんじゃないかな?
pleskのnginxを色々いじっていたんですが、どうも業務と関係ないところでファイルシステムのエラーがでてるらしくそれの対応中です。
日本語のrpmパッケージが壊れたり、どうも変なエラーがおおいですね。pleskはくせがありすぎます。
こんにちは
やっときました。
https://www.superweibu.com/archives/5632.html
くりくりさん,こんばんは。
拝見しました。やっときましたね。
お返事を書こうと思ったら,うちのからBad Host requestが戻ってきました。昨日は,BulletProof Securityをいじった後で直ったので,このプラグインのせいだと思ってたのですが,どうも違うなという感触。
改めて調べたら, php_opcache.dll が原因で, Apache が必死で再起動を繰り返していました。 php_opcache.dll は Apache の管轄外なので,当然ながら効果なし。 php.ini で OPcache を無効にしてやって再起動したら,直りました。 PHP のバグ報告に行った方がいいかなぁ。
おはようございます。
apache2.4とphp5.6opcacheがトラブルになるみたいですね。
superweibu.mydns.jpのphpはapache2.2が処理するようにしていますが、特にエラーはでていませんでした。
また、php-fpmの方も出力されていませんでしたね。
動作の方も特におかしいところもありません。
>Apache が必死で再起動を繰り返していました。
フリーズすることはよくありましたけど、 再起動をくりかえすとかめずらしいですね。
>php.ini で OPcache
新しいマイナーバージョンがでるまで無効化するほうがいいのかもしれませんね。
>PHP のバグ報告に行った方がいいかなぁ。
http://bugs.php.net
man phpで調べたらこんなのみつけました。
くりくりさん,こんばんは。
> 再起動をくりかえすとかめずらしいですね。
そうなんですか。 php5ts.dll のときも, Windows の Apache はどちらかというと,激しくリスタートを繰り返していました。サイトからのアクセスだと,どっちにしても応答がない形になるんですが。
> apache2.4とphp5.6opcacheがトラブルになるみたいですね。
これを探してみたのですが,書いてあるところが見つけられなくて…… httpd.exe + php_opcache.dll の場合だけなのかもしれませんね。
http://bugs.php.net ,ありがとうございます。一応書き込みに行ってきました。 php5ts.dll のときも相談には行ったんですが,こちらの知識が乏しすぎて思うように質問ができなかったので,今回も同じ羽目に陥るかもしれません(汗)。Win の apache2.4 + PHP5.6 + OPcache という組み合わせがそれほど多くないと思うので,気おくれを封じ込めて書き込みしてきました(爆)。