eAccelerator
一度呼び出されたコンパイル済みのPHPスクリプトをキャッシュして実行速度を上げるソフトウェア。
いわゆるアクセラレーター。
Turck MMCache for PHP の派生*1ソフトウェア。
インストール
コンパイル
tar xvjf eaccelerator-0.9.5-beta1.tar.bz2 cd eaccelerator-0.9.5-beta1/ /usr/bin/phpize ./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config make make install
すると次のように表示されるので、右のパスを覚えておく。
Installing shared extensions: /usr/lib/php4/20020429/
WEBインターフェース用のパスワードを生成*2
php -q eaccelerator_password.php
PHPにzend_extensionとして設定(付属のeaccelerator.iniを参考に)
vi /usr/local/lib/php.ini
[eaccelerator] zend_extension="/usr/lib/php4/20020429/eaccelerator.so" eaccelerator.shm_size = "16" eaccelerator.cache_dir = "/var/cache/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.debug = 0 eaccelerator.log_file = "/var/log/apache2/eaccelerator.log" eaccelerator.name_space = "" eaccelerator.check_mtime = "1" 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_extensionの行は先に覚えていたパスを使ったものに読み替えて下さい。
上で生成したパスワードも追加
eaccelerator.admin.name="yourusername" eaccelerator.admin.password="$1$lBPC8I.y$hWT1DHuX/7Eokw/rUil2y/"
キャッシュディレクトリ作成 (www-dataはApacheの実行ユーザー)
mkdir /var/cache/eaccelerator chown www-data.www-data /var/cache/eaccelerator
Apacheの再起動
/etc/init.d/apache2 restart
動作の様子
付属のeaccelerator.phpにブラウザでアクセスしてみると、キャッシュのヒット状況などが分かります。
性能
cubic9.com は 2004/12/16 に PHP4.3.10+eAccelerator0.9.0 にしてみました。
今のところ MMCache とあまり変わらない模様。
特に不具合は起きていませんが、オフィシャルではPHP5での不具合が報告されています。
0.9.1で修正された模様。