程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 配置eAccelerator和XCache擴展來加速PHP程序的執行

配置eAccelerator和XCache擴展來加速PHP程序的執行

編輯:PHP綜合

eaccelerator安裝配置PHP加速
eAccelerator簡介
eAccelerator是一個的免費、開源的PHP模塊,它能夠為提供PHP加速、優化、加碼、和動態內容緩存功能。它通過存儲PHP腳本編譯後的狀態而加快執行PHP腳本的速度,而不需要頻繁的編譯這個PHP腳本。而且它能優化PHP腳本,以提高執行PHP的速度。eAccelerator特色是減少了服務器負載、使PHP腳本加速1-10倍。
下載地址:http://sourceforge.net/projects/eaccelerator/
解壓修改源代碼(解決出現open_basedir等報錯)

# tar jxvf eaccelerator-0.9.6.tar.bz2
# cd eaccelerator-0.9.6/
# vi eaccelerator.c

找到以下:

if (PG(open_basedir) && php_check_open_basedir(realname TSRMLS_CC)) {

改為

if (PG(open_basedir) && php_check_open_basedir(file_handle->filename TSRMLS_CC)) {

編譯安裝擴展eaccelerator

# /usr/local/php-5.2.14/bin/phpize # 對應你自己的phpize,一定要在eaccelerator-0.9.6目錄執行
# ./configure
–enable-eaccelerator \
–with-php-config=/usr/local/php-5.2.14/bin/php-config
# make
# make install # 會提示你擴展裝到了哪個目錄,我這邊是/usr/local/php-5.2.14/lib/php/extensions/no-debug-non-zts-20060613/

配置php.ini
如果本機之前有加過擴展,直接跳到下一步“添加eacclerator擴展”

Vi /usr/local/php-5.2.14/etc/php.ini

extension_dir = ./

替換成

extension_dir=/usr/local/php-5.2.14/lib/php/extensions/no-debug-non-zts-20060613/

添加eacclerator擴展

# vi /usr/local/php-5.2.14/etc/php.ini

 增加如下內容

 [eaccelerator]
 extension=eaccelerator.so
 eaccelerator.shm_size=”16″
 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=”0″
 eaccelerator.shm_prune_period=”0″
 eaccelerator.shm_only=”0″
 eaccelerator.compress=”1″
 eaccelerator.compress_level=”9″

創建eaccelerator目錄

# mkdir /tmp /eaccelerator
# chmod 777 /tmp/eaccelerator

重啟測試
重啟apache或者nginx,並且查看效果,如果/tmp/eaccelerator下有目錄,說明安裝成功了。
配置參數詳解(eaccelerator)

eaccelerator.shm_size=”8″

eAccelerator 可以使用的共享內存的數量 (以兆為單位) . “0” 是指操作系統的默認值. 默認值是 “0”.可根據服務器的實際情況來調整,8,16,32,64,128都是可以的。
eaccelerator.cache_dir=”/tmp/eaccelerator ”

這個目錄是給磁盤緩存使用. eAccelerator 在這裡儲存預先編譯好的代碼, 進程數據, 內容以及用戶的自定義內容. 同樣的數據也能被儲存在共享內存中 (這樣可以提高訪問速度). 默認的設置是 “/tmp/eaccelerator”.

eaccelerator.enable=”1″

開啟或關閉 eAccelerator。“1” 為開啟,“0” 為關閉。默認值為 “1”。

eaccelerator.optimizer=”1″

啟或關閉內部優化器,可以提升代碼執行速度。“1” 為開啟,“0” 為關閉。默認值為 “1”。

eaccelerator.check_mtime=”1″

打開或者關閉 PHP 的文件修改檢查. “1” 是指打開, “0” 是指關閉. 如果您在修改以後重新編譯 PHP 的文件,那麼您應當設置為 “1”. 默認值是 “1”.

eaccelerator.debug=”0″

開啟或關閉調試日志記錄。“1” 為開啟,“0” 為關閉。默認值為 “0”。會將緩存命中得記錄寫入日志。

eaccelerator.filter=””

判斷哪些 PHP 文件必須緩存。您可以指定緩存和不緩存的文件類型(如 “*.php *.phtml”等),如果參數以 “!” 開頭,則匹配這些參數的文件被忽略緩存。默認值為 “”,即,所有 PHP 文件都將被緩存。

eaccelerator.shm_max=”0″

當使用 ” eaccelerator_put() ” 函數時禁止其向共享內存中存儲過大的文件。該參數指定允許存儲的最大值,單位:字節 (10240, 10K, 1M)。“0” 為不限制。默認值為 “0”。

eaccelerator.shm_ttl=”0″

當eAccelerator 獲取新腳本的共享內存大小失敗時,它將從共享內存中刪除所有在最後 “shm_ttl” 秒內沒有存取的腳本緩存。默認值為 “0”,即:不從共享內春中刪除任何緩存文件。

eaccelerator.shm_prune_period=”0″

當eAccelerator 獲取新腳本的共享內存大小失敗時,他將試圖從共享內存中刪除早於“shm_prune_period” 秒的緩存腳本。默認值為 “0”,即:不從共享內春中刪除任何緩存文件。

eaccelerator.shm_only=”0″

允許或禁止將已編譯腳本緩存在磁盤上。該選項對 session 數據和內容緩存無效。默認值為 “0”,即:使用磁盤和共享內存進行緩存。

eaccelerator.compress=”1″

允許或禁止壓縮內容緩存。默認值為 “1”,即:允許壓縮。

eaccelerator.compress_level=”9″

指定內容緩存的壓縮等級。默認值為 “9”,為最高等級。

eaccelerator.keys = “disk_only”
eaccelerator.session = “disk_only”
eaccelerator.content = “disk_only”

設置內容緩存的存放的地方,可以設置為:

  • shm_and_disk 在共享緩存和硬盤(默認值)
  • shm 默認存在共享內存,如果共享內存已滿或大小超過 “eaccelerator.shm_max” 的值,就存到硬盤
  • shm_only 只存放在共享內存
  • disk_only 只存放在硬盤
  • none 不緩存數據

PHP擴展xcache安裝
xcache模塊可以緩存php運行時編譯生成的opcode可以加速php程序的效率,安裝xcache和安裝memcache方法類似,都是以擴展的方式安裝,PHP任何擴展方法基本上都是如下,所以不需要特意去找xxx擴展的文檔.
安裝PHP擴展xcache

# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
# tar -xvf xcache-3.2.0.tar.gz
# cd xcache-3.2.0
# ./configure –with-php-config=/usr/local/php/bin/php-config –enable-xcache
# make && make install

會生成類似如下信息

Installing shared extensions:  /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

所有的模塊都會生成到這個目錄下
編輯php配置文件

# vim /usr/local/php/etc/php.ini
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so

重載PHP

# service php-fpm reload

如果是你Apache+PHP模式,那麼重啟Apache即可.

# service httpd restart

或者

# /usr/local/apache-2.2.27/bin/apachectl restart

測試結果

20151222144250527.png (603×475)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved