XCache 是高效能 PHP opcode 快取器,特點:安裝直觀、配置簡單、支援 PHP 5.2-5.6、提供管理介面、可快取變數資料 (類似 APCu)。雖 PHP 5.5+ 內建 OPcache 更優,但舊版 PHP 環境 (如 PHP 5.3/5.4) 仍適用 XCache。
wget https://xcache.lighttpd.net/pub/Releases/3.0.1/xcache-3.0.1.tar.gz
tar zxvf xcache-3.0.1.tar.gz
cd xcache-3.0.1
/usr/local/php/bin/phpize
# 輸出確認:Configuring for: PHP Api Version: 20100525, Zend Module Api No: 20100525, Zend Extension Api No: 220100525
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install
安裝成功會顯示擴展安裝路徑,例如:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
記下此路徑,後續 php.ini 需填入。
mkdir -p /etc/php.d
cp xcache.ini /etc/php.d/xcache.ini
# 或直接編輯 /usr/local/php/etc/php.ini 新增以下區塊
[xcache-common]
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
xcache.admin.pass = "md5_encrypted_password" # 使用 md5("password") 生成
[xcache]
xcache.size = 64M # opcode 快取大小,依可用記憶體調整
xcache.count = 1 # 快取分段數,建議 = CPU 核心數
xcache.slots = 8K # 雜湊槽數量
xcache.ttl = 0 # 0=永不過期,建議 3600-86400
xcache.gc_interval = 300 # GC 間隔秒數
xcache.var_size = 16M # 變數快取大小
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 3600
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.readonly_protection = Off
xcache.mmap_path = "/dev/zero"
xcache.coredump_directory = ""
[xcache.coverager]
xcache.coverager = Off
xcache.coveragedump_directory = ""
service php-fpm restart
# 或
service httpd restart
phpinfo.php 確認 XCache 區塊出現,版本號正確。
cp -r /usr/local/src/xcache-3.0.1/htdocs /var/www/html/xcache-admin
chown -R apache:apache /var/www/html/xcache-admin
https://IP/xcache-admin,輸入設定的帳號密碼,即可查看快取命中率、清除快取、檢視快取內容。
ab (ApacheBench) 或 wrk 進行壓測:
# 測試無 XCache
ab -n 1000 -c 50 https://your-site.com/test.php
# 啟用 XCache 後重測
ab -n 1000 -c 50 https://your-site.com/test.php
觀察 Requests per second、Time per request、Transfer rate 指標提升幅度。
| 問題 | 原因 | 解決 |
|---|---|---|
| phpize: command not found | 未安裝 php-devel | yum install php-devel / apt install php-dev |
| configure: error: Cannot find php-config | 路徑錯誤 | 指定 --with-php-config=/usr/local/php/bin/php-config |
| 啟動報錯: xcache.so undefined symbol | PHP 版本不匹配 (TS/NTS、API 版本) | 重新編譯 XCache 對應當前 PHP 版本 |
| 管理介面 404 | htdocs 複製路徑錯誤 | 確認 DocumentRoot 下存在 xcache-admin/index.php |
| 快取命中率低 | TTL 過短、快取大小不足、程式碼頻繁變動 | 調大 xcache.size、xcache.ttl、排除開發目錄 |
若 PHP ≥ 5.5,強烈建議遷移至內建 OPcache:
zend_extension=opcache.so
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
opcache.enable_cli=1
OPcache 效能優於 XCache、無需額外編譯維護、官方長期支援。