首頁  >  文章  >  後端開發  >  用memcached,xcache做PHP快取最佳化的實作步驟

用memcached,xcache做PHP快取最佳化的實作步驟

php中世界最好的语言
php中世界最好的语言原創
2017-12-05 09:36:521879瀏覽

我們知道,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中文網其它相關文章!

相關閱讀:

駝峰命名與JS的問題解答

JS裡的布林值、關係運算子、邏輯運算子的詳解及實例

前端的js框架總結以及用途講解

以上是用memcached,xcache做PHP快取最佳化的實作步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn