eAccelerator をインストールする
提供:maruko2 Note.
http://eaccelerator.net/wiki/Settings
目次 |
ソースコード
インストール
- ソースコードを展開したディレクトリ内で phpize コマンドに続き ./configure を実行する。
- --with-php-config= は php-config コマンドを指定する。
- --with-eaccelerator-userid= は apache の実行ユーザ名を指定する。
$ phpize $ ./configure \ --enable-eaccelerator=shared \ --with-eaccelerator-shared-memory \ --with-eaccelerator-sessions \ --with-eaccelerator-content-caching \ --with-php-config=/opt/local/bin/php-config \ --with-eaccelerator-userid=www $ make && make install
設定
/etc/php.ini に追記する。
extension_dir = "/opt/local/lib/php/extensions/no-debug-non-zts-20060613/" [eAccelerator] extension="eaccelerator.so" eaccelerator.shm_size="32" eaccelerator.cache_dir="/var/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.allowed_admin_path="/opt/www/eaccelerator"
- eaccelerator.shm_size
- eAccelerator の共有メモリサイズ(MB)
- デフォルトは "0"
- eaccelerator.cache_dir
- ディスクキャッシュ用のディレクトリ
- デフォルトは "/tmp/eaccelerator"
- eaccelerator.enable
- eAccelerator を有効にするか無効にするか
- "1" は有効、"0" は無効。デフォルトは "1"
- eaccelerator.optimizer
- 実行速度を上げるオプティマイザを有効にするか無効にするか
- "1" は有効、"0" は無効。デフォルトは "1"
- eaccelerator.debug
- デバッグログを有効にするか無効にするか
- "1" は有効、"0" は無効。デフォルトは "0"
- eaccelerator.check_mtime
- PHP ファイルに更新があるかチェックする
- "1" は有効、"0" は無効。デフォルトは "1"
- PHP ファイルを更新した後に自動で再コンパイルさせるには "1" をセットしておく
- eaccelerator.filter
- どのような PHP ファイルをキャッシュするか指定する
- キャッシュするかしないかを "*.php" "*.phtml" のようなパターンで指定する
- "!" で始まるパターンのファイルはキャッシュしない
- デフォルトは "" で、すべての PHP スクリプトをキャッシュする
- eaccelerator.shm_max
- 共有メモリにキャッシュする最大サイズ
- バイト(10240, 10K, 1M)で指定する
- "0" は無制限。デフォルトは "0"
- eaccelerator.shm_ttl
- 共有メモリを取得できない(メモリが一杯の)時、"shm_ttl" 秒以上アクセスの無いスクリプトを削除する。
- デフォルトは "0" で、共有メモリからスクリプトを削除しない
- eaccelerator.shm_prune_period
- 共有メモリを取得できない(メモリが一杯の)時、前回の取得が "shm_prune_period" 秒前であれば古いスクリプトを削除する
- デフォルトは "0" で、共有メモリからスクリプトを削除しない
- eaccelerator.shm_only
- ディスクにスクリプトをキャッシュするかどうか(共有メモリのみにキャッシュするか)
- デフォルトは "0" で、ディスクと共有メモリにキャッシュする
- eaccelerator.compress
- キャッシュファイルを圧縮するかどうか
- デフォルトは "1" で圧縮を有効にする
- eaccelerator.compress_level
- 圧縮レベル
- デフォルトは最高圧縮の "9"
- eaccelerator.name_space
- eaccelerator.keys
- eaccelerator.sessions
- eaccelerator.content
- key, session, content をどこにキャッシュするか
- "shm_and_disk" 共有メモリとディスクにキャッシュする(デフォルト)
- "shm" 共有メモリにキャッシュし、共有メモリが一杯か "eaccelerator.shm_max" より大きなデータはディスクにキャッシュする
- "shm_only" 共有メモリにキャッシュする
- "disk_only" ディスクにキャッシュする
- "none" キャッシュしない
- eaccelerator.allowed_admin_path
- 管理用 Web インターフェース(control.php)を置くディレクトリ
Linux の共有メモリ設定
Linux で eaccelerator.shm_size の値を増やすと、apache に以下のようなエラーが出ることがある。
Could not allocate 50331648 bytes, the maximum size the kernel allows is 33554432 bytes. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shmmax.
このエラーは、Linux の共有メモリ設定が 32MB (33554432 bytes) になっているのに、eAccelerator でそれ以上のメモリを割り当てようとするために起きる。
eaccelerator.shm_size の値を増やす前に、Linux の共有メモリを増やすことで解決する。[1]
Linux の共有メモリ設定値は /proc/sys/kernel/shmmax に書かれているので、数値を編集する。編集後すぐに有効になる。
一時的に有効にするには、/proc/sys/kernel/shmmax の数値を書き換える。
echo 67108864 > /proc/sys/kernel/shmmax
OS 再起動後も有効にするには /etc/sysctl.conf に下記行を追加する。
kernel.shmmax = 67108864
管理用 Web インターフェース (eAccelerator control panel)
- ソースコードを展開したディレクトリ内に control.php があるので、php.ini で設定した eaccelerator.allowed_admin_path= にコピーする。
- control.php ファイルに Web 認証用の $user= , $pw= の項目があるので、eAccelerator control panel にアクセスするためのユーザ名、パスワードを書いておく。
- ショートオープンタグを使っているので、修正する。( <?= を <?php echo に書き換える。)
- Clear cache
- 使用していないスクリプトとデータを、共有メモリとディスクキャッシュから削除する。
- eaccelerator.admin_allowed_path で指定した eAccelerator control panel からのみ実行できる。
- Clean cache
- 期限切れのスクリプトとデータを、共有メモリとディスクキャッシュから削除する。
- eaccelerator.admin_allowed_path で指定した eAccelerator control panel からのみ実行できる。
- Purge cache
- 削除対象のスクリプトを削除する。共有メモリが必要なときに自動的に削除する?
- eaccelerator.admin_allowed_path で指定した eAccelerator control panel からのみ実行できる。
この管理用 Web インターフェースを見ながら、使用するメモリの割当数を決める。
脚注
- ↑ Faq – eAccelerator (eaccelerator.net)