我們知道,eaccelerator是一個自由開放原始碼php加速器,優化和動態內容緩存,可以提高PHP的腳本快取效能,並且對腳本起著優化作用,使您的PHP程式碼執行效率能提高1-10倍,今天就教大家PHP優化快取的方法。
2.快取原理
使用者請求一個PHP程式時,PHP引擎會解析該程序,並將其編譯為特定的操作碼(opcode),這是一種二進位格式的可執行程式碼。然後此操作碼會由PHP引擎執行並丟棄。操作碼快取將保存這個編譯後的操作碼,並在下次呼叫該頁面時重複使用它,這樣就節省了很多重複編譯的時間,節省資源,優化效能。
3.安裝eaccelerator
調整字元集
#echo 'LC_ALL=C' >> /etc/profile#source /etc/profile [root@~]#tar jxf eaccelerator-0.9.6.tar.bz2[root@~]#cd eaccelerator-0.9.6 [root@~]#/usr/local/php/bin/phpize phpize是用来扩展php模块的,通过phpize可以建立php的外挂模块[root@~]#./configure --enable-eaccelerator=shared \ --with-php-config=/usr/local/php-5.3.27/bin/php-config[root@~]#make && make install [root@~]# ls /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/eaccelerator.so
4.設定PHP載入eaccelerator
建立快取目錄
mkdir /tmp/eaccelerator #可目錄可以用tmpfs內存檔案系統來存儲,SSD固態硬碟
chown -R www.www /tmp/eaccelerator
在php.ini中加入以下內容:
eaccelerator cache config by Zhang DeJin 2017-12-1 [eaccelerator] extension = eaccelerator.so eaccelerator.shm_size="64" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.chech_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="3600" eaccelerator.shm_prune_perid="3600" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" --End config 测试:[root@lnmp nginx]# /usr/local/php-5.3.27/bin/php -v PHP 5.3.27 (cli) (built: Nov 30 2017 05:35:00) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerat
配置完成
重啟httpd或php-fpm生效
#5.版本選擇
php5.3.xx 可用eaccelerator-0.9.6版本
php5.2.xx 可用eaccelerator-0.9.5.2版本
2)Xcache
1介紹
XCache 是一個又快又穩定的PHP opcode 快取器。經過良好的測試並在大流量/高負載的生產機器上穩定運行. 經過(在linux 上)測試並支援所有現行PHP 分支的最新發布版本, 如PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 並支援線程安全/Windows. 與同類opcode 快取器相比更勝一籌, 例如能夠快速跟進PHP 版本. XCache 工程由mOo 領隊, 他也是Lighttpd 的開發成員之一. Lighttpd 是最快的Web 伺服器應用程式之一, 並且超越Apache 以及許多其他Web 伺服器. XCache 努力達到類似的效果。2.安裝
tar jxf xcache-1.3.2.tar.bz2cd xcache-1.3.2/usr/local/php-5.3.27/bin/phpize./configure --enable-xcache --with-php-config=/usr/local/php-5.3.27/bin/php-configmake && make install ls /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/
3.設定PHP載入xcache
cd /usr/local/php/lib/
#新增備註
echo >> php.ini echo "xcache config by ZhangDejin 2017-12-1"
修改xcache-1.3.2/xcache.ini,可用sed指令修改
註解第三行
zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
註解第六行
zend_extension_ts = c:/php/extensions/php_xcache.dll
啟用第八行
;extension = xcache.so
剩下的參數根據伺服器設定自行調整
然後加入php.ini
cat /home/king/xcache-1.3.2/xcache.ini >> php.ini
測試
/usr/local/php-5.3.27/bin/php -v PHP 5.3.27 (cli) (built: Nov 29 2017 18:03:24) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies with XCache v1.3.2, Copyright (c) 2005-2011, by mOo
重啟httpd或php-fpm生效
3)memcache客戶端,PDO_mysql,imagick擴充庫
#1.介紹
Memcache是一個高效能的分散式的記憶體物件快取系統,透過在記憶體裡維護一個統一的巨大的hash表,它能夠用來儲存各種格式的數據,包括圖像,視訊檔案以及資料庫檢索的結果,簡單的說就是將資料呼叫到記憶體中,然後從記憶體中讀取,從而大大提高了讀取速度
PDO擴展為PHP存取資料庫定義了一個輕量級的,一致性的接口,它提供了一個資料存取抽象層,這樣,無論使用什麼資料庫,都可以透過一致的函數執行查詢來取得資料
ImageMagick是一套功能強大,穩定而且免費的工作集和開發包,對圖片超過89中格式的圖片類型進行改變大小,旋轉,銳化,減色等處理,現在它的主要精力集中在性能,減少bug以及提供穩定的API和ABI上
2.安裝
tar zxf memcache-2.2.5.tgzcd memcache-2.2.5/usr/local/php-5.3.27/bin/phpize./configure --with-php-config=/usr/local/php-5.3.27/bin/php-configmake && make installln /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/ls /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/ 安装PDO_MYSQL tar zxf PDO_MYSQL-1.0.2.tgzcd PDO_MYSQL-1.0.2/usr/local/php-5.3.27/bin/phpize./configure --with-php-config=/usr/local/php-5.3.27/bin/php-config --with-pdo-mysql=/usr/local/mysql/make && make installls /usr/local/php-5.3.27/lib/php/extensions/no-debug-non-zts-2009062 yum install perl-devel -ytar zxf ImageMagick.tar.gzcd ImageMagick-6.5.1-2/./configuremake && make install安装imagicktar zxf imagick-2.3.0.tgzcd imagick-2.3.0/usr/local/php-5.3.27/bin/phpize./configure --with-php-config=/usr/local/php-5.3.27/bin/php-configmake && make installls /usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/配置PHP加载pdo_mysql,memcache,imagick等模块修改extension_dir = "./"为extension_dir = "/usr/local/php-5.3.27/lib/php/extensions/no-debug-zts-20090626/"添加这几个模块;--cache ext start by Zhang Dejin 2017-12-1extension = memcache.soextension = pdo_mysql.soextension = imagick.so;End config:
查看nginx編譯參數
nginx -V
查看httpd編譯參數
cat httpd/build/config.nice
查看mysql編譯參數
grep "CONFIGURE_LINE" mysql/bin/mysqlbug
php編譯參數
php/bin/php -i|grep configure
完畢
#相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
相關閱讀:
以上是用memcached,xcache做PHP快取最佳化的實作步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!