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。使えない、、のかも。