eAcceleratorはPHPをコンパイルしたものをキャッシュして動作を高速化させるPHPの拡張機能。コンパイルされたPHPスクリプトを共有メモリにおいて実行する。共有メモリは実行時にロックされ一度にひとつのPHPのみ実行する。共有メモリにおけないものはディスクにおかれる。PHP4とPHP5で利用できる。
ここではVineのPHP5.2.6に対してeAccelerator0.9.5.3をソースコードからインストールする。
# apt-get install php5-devel
$ wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
$ tar xfvj eaccelerator-0.9.5.3.tar.bz2
$ cd eaccelerator-0.9.5.3
$ phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
$ ./configure
$ make
# make install
成功すればPHPのextension_dirにeaccelerator.soがコピーされる。
$ php -i | grep extension_dir
extension_dir => /usr/lib/php5 => /usr/lib/php5
$ ls /usr/lib/php5
bin/ build/ eaccelerator.so* mysql.so* mysqli.so* pdo.so* pdo_mysql.so* pdo_sqlite.so*
$
PHPの設定ファイルを編集(作成)する。ここでは/etc/php5/php.d/eaccelerator.iniを作成して以下を追加した。
extension="eaccelerator.so"
eaccelerator.shm_size="16"
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"
iniの詳しい説明はここを参照。
上で定義したcache_dirを作成する。
$ mkdir /tmp/eaccelerator
$ chmod 0777 /tmp/eaccelerator/
Apacheを再起動してphpinfo()を表示。eAcceleratorの記述があるか確認する。
関連記事:
MySQLTunerを使ってMySQLを速くする