サイト高速化のためphp-eAcceleratorを導入しました。
サイト表示にかかる時間が400msから300msになったので一定の効果あり。
ところがeaccelerator.optimizerを有効にしているとWordPressの管理ページが途中で止まり、
phpMyAdminが動作しない症状が出たので対処します。
WordPressの管理ページはpharファイルを処理すると落ちるようなので、
/etc/php.d/eaccelerator.ini にこのファイルを除外するフィルタを書く手もありますが、
そもそも管理ページを高速化する必要はありませんのでwp-adminディレクトリ自体を除外します。
除外することでphp-eAccerelatorがキャッシュするメモリ量の節約も兼ねています。
やり方は.htaccessを使って
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0
を記入する方法が一般的ですが、このサーバは.htaccessは使わないポリシーなので、
/etc/httpd/conf.d/の中に専用のconfファイルを作ります。
$ vi /etc/httpd/conf.d/wp-admin.conf
<directory "/var/www/html/wp-admin/">
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0
</Directory>
$ service httpd graceful
/etc/httpd/conf/httpd.confの中に書いてもいいのですが、
confファイルを用意すればhttp/https両方に適用されるので管理が楽なんです。
同様にphpMyAdmin用のphpMyAdmin.confを修正します。
$ vi /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
+ php_flag eaccelerator.enable 0
+ php_flag eaccelerator.optimizer 0
<IfModule mod_authz_core.c>
これでphp-eacceleratorを導入しつつ
phpMyadminとWordPressの管理ページを利用できるようになりました。
参考ページ
[PHP] eAccelerator で .phar インクルード時に Fatal error が発生する | memo.dogmap.jp
http://memo.dogmap.jp/2013/05/07/php-eaccelerator-fatal-error/
WordPress高速化、php-eAccelerator導入 – 私的好奇心空間
http://www.wendy-net.jp/otoyo/blogs/2013112802535/
2015/2/15 更新
結局eaccelerator.iniでフィルタリングすることにしました。