前回はQNAPでeAcceleratorの高速化を紹介しました。
今回は、それに関する補足です。
eAccelerator管理画面(control.php)を使用する
eAcceleratorを有効にしても、実際にどれぐらいメモリがキャッシュされているのか、また何がキャッシュされているのかが分かりにくいと思います。
eAcceleratorではもともとそれを管理する画面(control.php)が用意されているので、QNAPに導入します。
- phpinfo()で、eAcceleratorのバージョンを確認しておきます。
- eAcceleratorの公式サイトから、上記で確認したバージョンと同じアーカイブをダウンロードし、解凍します。
- 解凍したフォルダの中にcontrol.phpがあるので、QNAPのQweb以下のどこか(例えばQweb/eaacelerator/など)に配置します。他のファイルは使わないので削除してOKです。
-
QNAPのphp.ini編集で、[eaccelerator]セクションの一番下に、
eaccelerator.allowed_admin_path = [配置したパス]/control.php
を追記して適用します。(上記の例だと/share/Qweb/eaacelerator/control.phpとなります)
- デフォルトの設定だと誰でもcontrol.phpにアクセスできる設定になっているので、ファイルを開いて$authをtrueに、$userと$pwを適切に設定するか、.htaccessなどでアクセス制限をしておきます。
-
ブラウザでcontrol.phpを開いてみます。eAccelerator control panelが表示されればOKです。
画面下のボタンではキャッシュのクリアができるようですが、私の環境ではディスクキャッシュ(/.eaccelerator.tmp)のクリアができませんでした。
共有メモリサイズ(eaccelerator.shm_size)を変更する
eAcceleratorでは通常、共有メモリサイズ(eaccelerator.shm_size)を任意に指定できます。
QNAPでもphp.iniの中でパラメータeaccelerator.shm_sizeを持っていて、初期値は32(MB)となっています。
しかし、試した人は分かると思いますが、QNAPではなぜかこの値を変更しても32(MB)に戻ってしまいます。
(2011.03.24以下修正した)
調べてみると、この値は/etc/init.d/Qthttpd.shの中でハードコーディングされていることが分かりました。
Qthttpd.shを書き換えることによって、メモリサイズを書き換えられることは確認済みです(詳しくは書きません)。
以上です。