php-eAcceleratorを導入

サイト高速化のため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でフィルタリングすることにしました。

php-eAcceleratorの設定を調整
php-eAcceleratorを導入の続きです。 php-eAcceleratorの前回の設定では記事のプレビュー画面が表示さ...