eacceleratorを使う
phpで動作しているウェブサイトが遅いというクレーム。トップ画面を表示するのに12秒くらいかかる。うーん、昔はこんなに遅くなかったんだけどなぁ。
phpを高速化するにはアクセラレータを使うのが吉な模様。php5だとeacceleratorが定番みたいなのでこれをインストールして試してみる。
ダウンロード
ブツはsourcerforgeにあります。ここからダウンロード。最新は2010年の0.9.6.1。
展開してmake
実行環境はSolarisなのでautoconfがありません。www.sunfreewareから適当にダウンロード。
で、これでインストールしたautoconfに含まれているautom4teとautoheaderはperlにスクリプトなんですが。マジックナンバが/usr/local/bin/perlを指しているので、環境によって調整が必要。私の環境では/usr/bin/perlに修正しました。
以下phpizeしてmake。
$ phpize $ ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config --with-eaccelerator-userid=1 $ /usr/local/bin/make # /usr/local/bin/make install
php.iniに設定追加
こんなの追加。
[eaccelerator] zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so" eaccelerator.shm_size = "32" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.check_mtime = "1" eaccelerator.debug = "0" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" eaccelerator.keys = "shm_and_disk" eaccelerator.sessions = "shm_and_disk" eaccelerator.content = "shm_and_disk"
zend_extensionsのパスは適当に変更してください。
確認
phpinfo()で設定が有効になっていることを確認する。
$ /usr/local/bin/php -r 'phpinfo();'
で、効果は?
うーん、微妙。早くなっていないような気がする。
と効果がないのかな?
で、よくphpinfo()の結果をみると、キャッシュも最適化も無効になってることに気が付きました。
eAccelerator support => enabled Version => 0.9.6.1 Caching Enabled => false Optimizer Enabled => false Check mtime Enabled => false
phpは5.2.14。使えない、、のかも。