配置xcache插件加速
1.xcache.ini參數說明
xcache軟件的解壓目錄xcache-3.2.0下存在一個名爲xcache.ini的配置文件,即爲xcache的配置文件。參數說明如下:
xcache配置文件參數 | 解釋說明 |
[xcache-common] extension = xcache.so | 加載xcache.so,路徑相對於extension_dir的配置。自3.0版本開始不再使用zend_extension加載xcache的方式 |
[xcache.admin] xcache.admin.enable_auth = On | 激活管理員認證 |
xcache.admin.user = “mOo” xcache.admin.pass = “md5 encrypted password” | 執行xcache管理員用戶名和密碼,密碼根據md5加密產生,留空表示禁止管理頁面 |
[xcache] | 開始xcache緩存參數配置段,下面所有的初始值即爲默認值,除非明確說明。 |
xcache.shm_scheme = “mmap” | 設置XCache如何從系統分配共享內存 |
xcache.size = 60M | 0爲禁止緩存,非0則啓用緩存。需要注意系統所允許的mmap最大值 |
xcache.count = 1 | 指定將cache切分成多少塊,官方推薦設置爲服務器cpu的數量** grep-c processor /proc/cpuinfo |
xcache.slots = 8K | 只是作爲bash個數的參考值,緩衝超過這個個數的內容沒有任何問題 |
xcache.ttl = 0 | 設置cache對象的生存期TTL(time to live) 0爲永不過期 |
xcache.gc_interval = 0 | 回收期掃描過期的對象回頭內存空間的間隔,0爲不掃描,其他值的單位是 |
xcache.var_size = 4M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_slots = 0 xcache.var_gc_interval = 300 | 這幾個值和上面的幾個類似,只不過用於變量緩存,而不是opcode緩存 |
xcache.readonly_protection = Off | 如果啓用了該參數,將會略微降低性能,但會提高一定的安全係數,這個選項對於 xcache.mmap_path = /dev/zero 無效 |
xcache.mmap_path = “/dev/zero” | 對於*nix,xcache.mmap_path是一個文件路徑而非目錄。如果要啓用該參數 請使用“/tmp/xcache”這樣的路徑,而是“/dev/*”如果開啓了xcache.readonly_protection參數,不同進程組的PHP將不會共享同一個/tmp/xcache路徑 |
xcache.coredump_directory = “” | 當XCache crash後,是否把數據保存到指定路徑 |
xcache.disable_on_crash = Off | 當xcache發生crash時,自動關閉xcache緩存 |
有關更多參數說明請看配置文件對應註釋說明或參考官方文檔:
http://xcache.lighttpd.net/wiki/XcacheIni
2.操作
因爲xcache已經提供好配置文件我們追加到php.ini即可
[root@web02 xcache-3.2.0]# cat xcache.ini >>/application/php/lib/php.ini
3.檢查XCache加速情況
[root@web02 ~]# /application/php/bin/php -vPHP 5.5.32 (cli) (built: May 24 2016 13:55:46) Copyright (c) 1997-2015 The PHP GroupZend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies with XCache v3.2.0, Copyright (c) 2005-2014, by mOo with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo
提示:eAccelerator和xcache在php中只能有一個否則會出現error
修改完成後必須要重啓PHP,否則不生效
phpinfo顯示如下
4.配置Web界面查看XCache緩存加速信息
XCache支持Web界面管理,使用web界面生產md5地址如下:
http://xcache.lighttpd.net/demo/cacher/mkpassword.php 通過輸入字符串生產Xcache管理員的密碼,這裏使用MD5sum生成明文密碼。
[root@web02 xcache-3.2.0]# echo -n "123456"|md5sum e10adc3949ba59abbe56e057f20f883e -
修改配置php.ini,在xcache.admin標籤段修改
[xcache.admin]xcache.admin.enable_auth = Onxcache.admin.user = "abcdocker" #此處是用戶名xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"#此處是md5加密的密碼路徑提示:要求密碼必須要使用md5加密
然後複製xcache軟件下面的緩存加速管理PHP程序到站點目錄下:
[root@web02 xcache-3.2.0]# cp -a htdocs/ /application/nginx/html/blog/xadmin[root@web02 xcache-3.2.0]# chown -R www.www /application/nginx/html/blog/xadmin[root@web02 xcache-3.2.0]# pkill php-fpm[root@web02 xcache-3.2.0]# /application/php/sbin/php-fpm
可以直接在瀏覽器上輸入:域名/IP/xadmin 就可以訪問
進入xcache界面
如果我們沒有設置時區,會出現警告,解決方法如下
修改時區
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Chongqing 去掉註釋,修改地址
修改完需要重啓
配置ZendOpcache參數
在php.ini的最後面加入下面幾行:
[opcache] zend_extension=/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/opcache.so; extension=opcache.so opcache.memory_consumption=32 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=1000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1
opcache參數說明
opcache參數 | 解釋說明 |
opcache.memory_consumption=32 | Opcache共享內存空間大小,用於存放precompiled PHP code,默認爲64,單位爲Mbytes |
opcache.interned_strings_buffer=8 | 默認值爲4,interned strings內存的數量,單位是M |
opcache.max_accelerated_files=1000 | 默認值是2000,Opcache哈希表的key的最大數量 |
opcache.revalidate_freq=60 | 默認值2,檢查文件時間戳的頻率,用於共享內存分配的變化。 |
opcache.fast_shutdown=1 | 默認值爲0,如果激活,一個快速的關閉隊列獎盃用來加速代碼 |
opcache.enable_cli=1 | 默認值爲0,激活PHP CLI的OPcache,用於測試和調試 |
更多參數說明:
[root@web02 zendopcache-7.0.5]# cd zendopcache-7.0.5 [root@web02 zendopcache-7.0.5]# less README
再次提示:
ZendOPcache是PHP官方的新一代的緩存加速軟件,php5.5以前可以用ZendOPcache軟件以插件擴展的方式安裝,從PHP5.5版本開始整合到PHP軟件裏,編譯時只需要指定一個參數即可,例如:–enable-opcache
phpinfo顯示如下信息
PHP指定MySQL的編譯參數帶來的問題
如果我們再編譯的時候指定了–with-mysql=mysqlnd和–with-pdo-mysql=mysqlnd的參數進行編譯,例如:
./configure \ --prefix=/application/php5.5.32 \ --with-mysql=/application/mysql/ \ --with-pdo-mysql=mysqlnd \ --with-iconv-dir=/usr/local/libiconv \ .....省略其他參數
則再生產中可能會遇到socket連接問題,解決方法是在php.ini裏添加如下命令
pdo_mysql.default_socker=/application/php5.5.32/tmp/mysql.sock
生成環境PHP擴展插件的安裝建議
1.PHP的安裝插件表格列表
2.生成環境查看的安裝建議
(1)對於功能性插件,如果業務產品不需要使用,可以暫時不考慮安裝,例如:PDO_MYSQL\memcached\imagick等。如果不清楚是否需要,還是最好裝上,有備無患。
(2)對於性能優化插件,eAccelerator、xcache、ZendOPcache、APC可以安裝任一種,具體情況看業務需求,在選擇時最好能搭建相關環境進程壓力測試,然後根據實際測試結果來選擇,用數據說話。
3.PHP加速插件的測試結果對比
針對PHP加速器比較結果進行總結
1.通過測試得出eAccelerator在請求時間和內存佔用綜合方面是最好的
2.通過測試得出使用加速器比無加速器的請求時間快了3倍左右
3.通過各個官方觀察,Xcache是更新最快的,說明它是最有發展的。
那我們到底用哪個加速器呢?
首先,用一定比不用好,其次每個加速器還有一些可以優化的參數,所以要根據你的系統環境而定,此外,xcache和zendopcache這兩款加速器的潛力還是很大的。