eAccelerator 是一款免費開源的 PHP 加速器,透過緩存編譯後的腳本 bytecode 到共享記憶體,大幅降低伺服器負載並提升執行速度。本文詳細說明其 php.ini 設定參數與常用 API 函數,適用於 PHP 5.x 環境(現已較少使用,建議改用 OPcache)。
| 指令 | 預設值 | 說明 |
|---|---|---|
eaccelerator.shm_size | 0 (OS 預設) | 共享記憶體大小(MB),0 表示由系統決定。 |
eaccelerator.cache_dir | /tmp/eaccelerator | 磁碟緩存目錄,儲存預編譯碼、Session、內容緩存。 |
eaccelerator.enable | 1 | 啟用/停用 eAccelerator。 |
eaccelerator.optimizer | 1 | 啟用內部優化器,可提升執行速度。 |
eaccelerator.debug | 0 | 開啟除錯日誌。 |
eaccelerator.check_mtime | 1 | 檢查腳本修改時間,開發環境建議開啟,生產環境可關閉提升效能。 |
eaccelerator.filter | 空 | 檔案過濾規則,如 *.php 或 !admin/*.php 排除特定目錄。 |
eaccelerator.shm_max | 0 | 單一鍵值在共享記憶體的最大位元組數,0 為不限制。 |
eaccelerator.shm_ttl | 0 | 閒置超過秒數的腳本緩存將被移除(0 關閉)。 |
eaccelerator.shm_prune_period | 0 | 定期清理超過秒數的舊緩存(0 關閉)。 |
eaccelerator.shm_only | 0 | 僅使用共享記憶體,不寫入磁碟(Session/內容緩存除外)。 |
eaccelerator.compress | 1 | 啟用內容緩存壓縮。 |
eaccelerator.compress_level | 9 | 壓縮等級 1-9,9 最高。 |
eaccelerator.name_space | 空 | 鍵值前綴,支援多站點共用同一緩存空間。 |
eaccelerator.keys / sessions / content | shm_and_disk | 資料儲存策略:shm_and_disk、shm、shm_only、disk_only、none。 |
eaccelerator_put($key, $value, $ttl=0):寫入共享記憶體,$ttl 為存活秒數。eaccelerator_get($key):讀取值,不存在或過期回傳 null。eaccelerator_rm($key):刪除指定鍵。eaccelerator_gc():清理所有過期鍵。eaccelerator_lock($lock):建立命名鎖,請求結束自動釋放。eaccelerator_unlock($lock):手動釋放鎖。eaccelerator_set_session_handlers():安裝自定 Session 處理器,或在 php.ini 設定 session.save_handler=eaccelerator。eaccelerator_cache_output($key, $eval_code, $ttl=0):緩存程式碼輸出內容。eaccelerator_cache_result($key, $eval_code, $ttl=0):緩存程式碼回傳結果。eaccelerator_cache_page($key, $ttl=0):緩存整頁輸出。eaccelerator_rm_page($key):移除頁面緩存。eaccelerator_encode($filename):回傳編譯後的編碼字串。eaccelerator_load($code):載入並執行編碼後的腳本。zend_extension_ts="C:/php/ext/eaccelerator.dll"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="C:/php/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.name_space="mysite_"
check_mtime=0,部署新版時手動清理緩存目錄或重啟 PHP-FPM。compress=1 可大幅減少磁碟 I/O,CPU 開銷極低。eaccelerator_get() 命中率、共享記憶體使用率,配合 shm_ttl、shm_prune_period 微調。PHP 5.5+ 內建 OPcache,效能更優且無需額外擴充。新專案請直接啟用 OPcache;既有 eAccelerator 專案升級 PHP 版本時,請移除 eAccelerator 相關設定並改用 OPcache 設定。