vps是centOS系統,php為nginx+fastcgi,nginx安裝目錄/usr/local/nginx,php安裝目錄/usr/local/php,開始在linux安裝PHP加速器eAccelerator吧!
先行編譯安裝eAccelerator
安裝前準備
安裝之前使用需要安裝make和phpize,如果安裝過,跳過此步驟。運行下面的命令
代碼如下 |
複製代碼 |
yum install make php5-dev //ubuntu下用apt-get
|
安裝eAccelerator
然後開始下載eAccelerator,配置安裝編譯:
代碼如下 |
複製代碼 |
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2 tar xjf eaccelerator-0.9.6.1.tar.bz2 cd eaccelerator-0.9.6.1 /usr/bin/phpize ./configure -enable-eaccelerator=shared -with-php-config=/usr/bin/php-config make make install
|
這時會將eaccelerator安裝到php目錄中,螢幕會顯示eaccelerator.so所在路徑
例如:
代碼如下 |
複製代碼 |
Installing shared extensions:/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/
|
記住這個路徑,在後面的設定檔裡面會用到。
配置eAccelerator緩衝路徑
代碼如下 |
複製代碼 |
mkdir /tmp/eaccelerator chmod 777 /tmp/eaccelerator
|
配置eAccelerator
安裝eAccelerator之後,需要配置才可以使用哦~所以我們需要在php.ini中添加eAccelerator的配置,當然你也可以建立個設定檔,在php.ini中引入設定檔即可。
代碼如下 |
複製代碼 |
[eaccelerator] zend_extension=”/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so” eaccelerator.shm_size=”8″ eaccelerator.cache_dir=”/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.keys = “disk_only” eaccelerator.sessions = “disk_only” eaccelerator.content = “disk_only” |
幾個重要配置說明
安裝為 Zend extension 模式為上面的配置,如果你使用了thread safe模式安裝的PHP,你必須使用 “zend_extension_ts” 替換第二行的 “zend_extension”,安裝為 PHP extension 模式為“extension”。
cache_dir:緩衝的檔案夾位置,就是上一步我們mkdir的路徑。
shm_size:緩衝的大小,根據自己伺服器實際情況設定
enable:開啟或關閉 eAccelerator,”1″ 為開啟,”0″ 為關閉。預設值為 “1″。
optimizer:啟或關閉內部最佳化器,可以提升代碼執行速度。”1″ 為開啟,”0″ 為關閉。預設值為 “1″。
check_mtime:開啟或者關閉 PHP 的檔案修改檢查,”1″ 是指開啟,”0″ 是指關閉。預設值是 “1″。
debug:開啟或關閉調試日誌記錄。”1″ 為開啟,”0″ 為關閉。預設值為 “0″。會將快取命中得記錄寫入日誌。
filter:判斷哪些 PHP 檔案必須緩衝。可以指定緩衝和不緩衝的檔案類型(如 “*.php *.phtml”等)如果參數以 “!” 開頭,則匹配這些參數的檔案被忽略緩衝。預設值為 “”,即,所有 PHP 檔案都將被緩衝。
shm_max:當使用 ” eaccelerator_put() ” 函數時禁止其向共用記憶體中儲存過大的檔案。該參數指定允許儲存的最大值,單位:位元組 (10240, 10K, 1M)。”0″ 為不限制。預設值為 “0″。
shm_ttl:當 eAccelerator 擷取新指令碼的共用記憶體大小失敗時,它將從共用記憶體中刪除所有在最後 “shm_ttl” 秒內沒有存取的指令碼緩衝。預設值為”0″,為不從共用記憶體中刪除任何快取檔案。
shm_prune_period:當 eAccelerator 擷取新指令碼的共用記憶體大小失敗時,他將試圖從共用記憶體中刪除早於”shm_prune_period” 秒的緩衝指令碼。預設值為 “0″,為不從共用記憶體中刪除任何快取檔案。
shm_only:允許或禁止將已編譯指令碼緩衝在磁碟上。該選項對 session 資料和內容快取無效判定。預設值為 “0″,為使用磁碟和共用記憶體進行緩衝。
compress:允許或禁止壓縮內容緩衝。預設值為 “1″,為允許壓縮。
compress_level:指定內容緩衝的壓縮等級。預設值為 “9″,為最高等級。
代碼如下 |
複製代碼 |
eaccelerator.keys = “disk_only” eaccelerator.sessions = “disk_only” eaccelerator.content = “disk_only” |
設定內容緩衝的存放的地方,可以設定為:
shm_and_disk 在共用快取和硬碟(預設值)
shm 預設存在共用記憶體,如果共用記憶體已滿或大小超過 “eaccelerator.shm_max” 的值,就存到硬碟
shm_only 只存放在共用記憶體
disk_only 只存放在硬碟
none 不快取資料
重啟相關服務
# 重啟nginx
/etc/init.d/nginx restart
# 重啟PHP-CGI
/etc/init.d/php-fastcgi restart
查看eAccelerator運行情況
eAccelerator安裝包裡有一個control.php檔案,把它複製到網站的任意目錄,然後將路徑添加到設定檔,就可以通過這個php檔案可以用它查看和管理eAccelerator,這個必須指定,否則查看緩衝內容的時候會出錯,訪問時候預設的使用者名稱是:admin,密碼:eAccelerator,使用者名稱和密碼可以在control.php中修改:
eaccelerator.allowed_admin_path = “/data/wsdata/wwwroot”
這樣我們就可以通過訪問control.php來查看eAccelerator的命中率了,還可以線上清理緩衝目錄,查看配置的緩衝空間使用率。