更新時間: 2009-05-21
介紹
eAccelerator 原理是將 "編譯" 了的 PHP scripts ,
以壓縮形式儲存在 shared memory, 這編譯是指語法檢查及進行代碼優化.
由此大大減少由 HardDisk 的存取時間, 以及編譯 script 的時間.
目錄
- 介紹
- 事前準備
- 編釋過程
- 安裝
- 設定
- 個別 Virtualhost 停用 cache
- shared memory > 32mb 時
事前準備
apt-get install autoconf automake libtool m4
apt-get install php5-dev
!!! 注意 libapache2-mod-php5 包與 php5-dev 包的版本要一樣, 否則 apache 會啟動不了 ~
編釋過程:
執行 phpize
在源碼包目錄內
./configure --prefix=/usr
make
我們要的東西就是
/usr/src/eaccelerator-0.9.5.3/modules/eaccelerator.so
安裝:
將 eaccelerator.so 複製到 /usr/lib/php5/20060613+lfs 目錄內
在 /etc/php5/conf.d 目錄內建立 eaccelerator.ini 設定檔
內容如下:
# # configuration for php eaccelerator module # extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/var/cache/eaccelerator/" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="0" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="60" eaccelerator.shm_prune_period="180" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" eaccelerator.allowed_admin_path="/var/www/datahunter.servehttp.com/eaccelerator/"
**建立緩衝目錄**
mkdir /var/cache/eaccelerator
chown www-data:www-data /var/cache/eaccelerator
chmod 660 /var/cache/eaccelerator
**建立控制台**
mkdir /var/www/datahunter.servehttp.com/eaccelerator
將 control.php 複製進去, 並改名 index.php
之後修改 control.php 內的密碼
設定:
大部份設定用 default 值都是相當理想,
只有以下幾個設定值得探討一下
eaccelerator.shm_size="16"
# 用多少 ram 在 cache, 單位是 mb
eaccelerator.compress_level="5"
# 壓縮的程度, default 是最高的 9
eaccelerator.check_mtime="0"
# 不檢查 php 檔有沒有被修改過
# 只有 shm 不夠時才會清除長時間無用過的 script
eaccelerator.shm_ttl="60"
#是指 > 60 sec 未用過的 script 才算舊
eaccelerator.shm_prune_period= "180"
#它是用來限制要隔多久才能清潔一次
個別 Virtualhost 停用 cache:
如果大家在個別的 Virtualhost 來以 php 開發網站,
那相信這站的 script 是會不斷改版的,
所以無謂 cache 佢地, 那停用 eAccelerator 都好應該.
那在 .htaccess 加入以下 config 就可以了
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0
shared memory > 32mb 時
如果你有充足的 ram 時, 而又想 cache 所有的 script
那當 eaccelerator.shm_size > 32mb 時, 大家要修改
/proc/sys/kernel/shmmax
以增大 shared memory 的可用量