eAccelerator 是開源免費 PHP 加速器,核心功能:
官方網站:eaccelerator.net (已停止更新,現代 PHP 5.5+ 內建 OPcache 取代)
⚠ 版本對應關鍵:eAccelerator 嚴格綁定 PHP 版本。本文範例針對 PHP 5.2.0 - 5.2.8。其他版本請至官網/PECL 下載對應編譯版本。
# 建立 phpinfo.php
<?php phpinfo(); ?>
# 瀏覽器訪問,記錄 PHP Version、Thread Safety (TS/NTS)、編譯器 (VC6/VC9)
# 解壓到 PHP extension 目錄
# 例:D:\PHP\ext\eAccelerator0953_5.2.8.dll
# 檔名通常含版本資訊,請確認實際檔名
[eAccelerator]
zend_extension_ts = "D:\PHP\ext\eAccelerator0953_5.2.8.dll"
eaccelerator.shm_size = "32"
eaccelerator.cache_dir = "D:\PHP\temp"
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"
eaccelerator.sessions = "shm"
| 參數 | 檢查重點 |
|---|---|
zend_extension_ts | 路徑絕對正確、檔案存在、TS/NTS 匹配 (TS=Thread Safe 含 _ts 後綴) |
eaccelerator.shm_size | 共享記憶體大小 (MB),建議 32-128,視記憶體與站點數調整 |
eaccelerator.cache_dir | 目錄存在、NTFS 權限給 Users 群組讀寫 (關鍵!) |
eaccelerator.enable | 1=啟用,0=停用 |
eaccelerator.optimizer | 1=啟用優化,0=停用 |
# 在 php.ini 最底部 [Zend] 區段加入
zend_optimizer.optimization_level = 0
原理:將 Zend Optimizer 優化等級設為 0 (不優化),僅保留解碼功能,避免雙重優化衝突導致腳本執行異常。
iisreset /restart
# 或服務管理重啟 World Wide Web Publishing Service
phpinfo.php| 現象 | 原因與解決 |
|---|---|
| phpinfo 無 eAccelerator 區塊 | 1. DLL 路徑錯誤/檔案不存在 2. TS/NTS 不匹配 (VC6/VC9 不匹配) 3. php.ini 修改未生效 (未重啟 IIS/編輯錯誤 php.ini) 4. cache_dir 權限不足 |
| 網站出現亂碼/空白頁 | 1. 與 Zend Optimizer 衝突 (加入 optimization_level=0) 2. eaccelerator.optimizer=1 導致特定代碼優化錯誤 (試設 0) 3. shm_size 過小導致快取擠出 |
| 啟動後 IIS 當機/500 錯誤 | 1. DLL 版本與 PHP 核心不匹配 2. 共享記憶體衝突 (其他軟體佔用同樣 key) |
# php.ini (PHP 5.5+)
[opcache]
zend_extension = php_opcache.dll
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
優化鐵律:Opcode 快取是 PHP 效能提升 ROI 最高的單一優化。無論 eAccelerator、APC、XCache、OPcache,核心價值皆為「編譯一次、執行萬次」。Windows + IIS + PHP 部署,務必啟用且正確配置快取目錄權限。