〜Windows用 eAcceleratorの配布〜

PHPを高速化しよう 〜eAccelerator〜

PHPを高速化させるものにeAcceleratorというものがあります。
PHPとはスクリプト言語ですが、インタプリタ言語ではありません。
PHPスクリプトの実行時は、常に「ランタイム・コンパイラ」が自動的にスクリプトをバイトコードへコンパイルし、これを「エグゼキュータ」が実行します。
コンパイルといってもOSネイティブなバイナリに変換されるわけではなく、エグゼキュータが解釈可能な形式へ変換し、かつそれをスクリプト実行の度に毎回コンパイルせねばなりません。

はい、kokoには何の事やらさっぱり分かりません。
要約すると、PHPは実行する度に何かコンパイルという加工作業をしているということです。

eAcceleratorはコンパイルされたPHPスクリプトを保存し、PHPスクリプトに変化がなければ保存されたものから実行してやろうというものです。
つまり毎回コンパイルする必要がなくなるのでPHPが高速に実行できるという仕組みです。
その性能は概ね30%〜100%程度の速度改善効果が期待できるとされます。

さてそんなeAcceleratorですが、公式サイトを見てもSourceしか置いてありません。
Linux環境でしたらコンパイルするのも簡単ですが、Windows環境では中々簡単にコンパイルできる物ではありません。
自分が調べた分ではコンパイル解説サイトは存在しませんでしたし、バイナリ配布サイトも国内で1件、海外で2件、このような状況です。

というわけで、コンパイル済みeAcceleratorを配布します。
Windows用eAccelerator-php5.2.10.zip

中身はeAccelerator.dllのみです。
導入方法を紹介します。

ダウンロードしてきたファイルを解凍します。
PHPを高速化しよう 〜eAccelerator〜
eAccelerator.dllはPHPをインストールしたディレクトリ内のextensionsフォルダにコピーしておきます。
うちの解説例でPHP5の場合はC:\php\extですね。

コンパイル済みPHPスクリプト保存フォルダ、つまりキャッシュフォルダを作成します。
私はd:\cacheとしました。

PHPを高速化しよう 〜eAccelerator〜

C:\WINDOWSにあるphp.iniを編集します。
一番下に

extension=eAccelerator.dll
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = d:\cache
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.cache_dir = の項目は先に作成したキャッシュフォルダです。

上書き保存し、HTTPサーバーを再起動させます。


PHPを高速化しよう 〜eAccelerator〜

<?php phpinfo();?>スクリプトにアクセスします。
ここにeAcceleratorの文字が確認できれば、正常に機能していることが分かります。

お疲れ様でした。