最近、サーバのphpが遅く感じるので、、PHPのソースを解析し、中間コードをメモリにキャッシュしてくれる、eAcceleratorをインストールしてみました。php5.2対応。
手順
SourceForge.net: eAcceleratorからソースをダウンロード、解凍。
# tar xvfi eaccelerator-0.9.5.2.tar.bz2
# cd eaccelerator-0.9.5.2
configureとmake,make install (phpize、php-configのパスは環境に合わせて変更)
# /usr/local/bin/phpize
# ./configure –enable-eaccelerator=shared –with-php-config=/usr/local/bin/php-config
# make & make install
make install後に表示される、パスをメモっておく。
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/
control.phpをWebの公開ディレクトリにコピー
# cp control.php /usr/local/apache2/htdocs/
control.phpの認証部分を編集
# vi /usr/local/apache2/htdocs/control.php
$user = “admin”; //適宜変更
$pw = “eAccelerator”; //適宜変更
キャッシュディレクトリ作成と権限変更(ユーザ、グループ名は環境に合わせて)
# mkdir /tmp/eaccelerator
# chown daemon:daemon /tmp/eaccelerator
php.iniの編集、zend_extensionは先ほど、make install時にメモした値に/eaccelerator.soのパスを追加した値を書く。
#vi /usr/local/lib/php.ini
[eaccelerator]
zend_extension = “/usr/local/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so”
eaccelerator.shm_size = “64”
eaccelerator.cache_dir = “/tmp/eaccelerator”
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”
eaccelerator.allowed_admin_path = “/usr/local/apache2/htdocs/control.php”
apacheを再起動
service httpd restart
これで完了。あとはcontrol.phpを見ながら、 eaccelerator.shm_sizeでキャッシュする量を変更する。
実際にphpを利用しているサイトにアクセスしながら、Memory Usageをチェックすればよい。
Check Tweet