2009年1月26日月曜日

Windowsに PHP eAcceleratorをインストールメモ

インストールのメモ。PHPは5.2.8。


インストール手順

  1. Apache on Windows binaries and modules downloadからZIPをダウンロード(現時点の最新版(5.2.8)にしか対応していない?)
  2. ZIPを解凍(展開)して、eaccelerator.dllをPHPのextフォルダに移動またはコピー
  3. ZIP内にあるcontrol.phpをWebブラウザで見られる場所に移動またはコピー(例:C:\apache\htdocs\test\control.php)
  4. control.phpの変数$userと$pwの値を適切なものに変える(この認証を使わないなら該当箇所をコメントアウトする)
  5. control.phpではshort_open_tagの"<?="を使ってるので、これを許可していない場合は"<?php echo "に置換する
  6. キャッシュ用のフォルダを作成(例:C:\temp\cache\ea)
  7. php.iniに設定を追加
    (例)
    [eAccelerator]
    extension="eaccelerator.dll"
    eaccelerator.allowed_admin_path="/apache/htdocs/test/control.php"
    eaccelerator.shm_size="64"
    eaccelerator.cache_dir="/temp/cache/ea"
    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="1"
    eaccelerator.compress="0"
    eaccelerator.compress_level="9"
  8. Apacheを再起動
  9. control.phpにアクセス(4.で設定したユーザー情報でログインする)
  10. control panelがエラー無く表示されていればインストール完了



php.iniの設定について
  • [eAccelerator]は無くても良いがあった方がわかりやすい。
  • allowed_admin_path・・・手順3で移動したPHPのパス
  • shm_size・・・0にすると「デフォルト値」が適用される(手元の環境では32MBだった)
  • check_mtime・・・0にするとPHPを更新してもキャッシュをCleanするまで更新が反映されない
  • filter・・・キャッシュ対象を絞り込める
  • compress・・・1にすると圧縮するが、どちらがよいかは状況によるらしい



control.phpでの操作
  • Caching・・・キャッシュの有効/無効の切り替え
  • Optimizer・・・最適化の有効/無効の切り替え
  • Clear cache・・・キャッシュを全て削除
    Remove all unused scripts and data from shared memory and disk cache, this means all data that isn't used in the current requests.
  • Clean cache・・・期限切れのキャッシュを削除


    Remove all expired scripts and data from shared memory and disk cache.


  • Purge cache・・・削除対象としてマークされたキャッシュを削除?


    Removed all scripts that are marked for deletetion. This will happen automaticly when shared memory is needed.





使ってみた感想
control.phpでキャッシュされる様を眺めるのが楽しい。
WordpressとかCakePHPとか、ファイルサイズ大きすぎ。


それから、control.phpでやっている認証はBasic認証なので、気持ち悪かったらApacheでDigest認証やその他のアクセス制限をかけた方が良さそう。



参考

0 件のコメント:

ブログ アーカイブ

tags