天天看點

Xcache加速php緩存筆記

                          Php緩存和優化實戰

緩存原理:

        當使用者請求一個php程式的時候,伺服器的php引擎根據用戶端請求解析php,并将其編譯的編碼為特定的操作碼,預設情況下,php解析完之後會自動丢棄這個解析的操作碼,而操作碼緩存會将使用者請求解析的源碼放到共享記憶體裡,友善下次調取,這樣就大大減少了cpu的負載量

LNMP php緩存過程

1首先用戶端向伺服器申請php請求

2服務端收到用戶端請求後,會将這個資訊交給php引擎,也就是fastcgi(php-fpm)進行處理,LAMP用的apache自帶的插件(libso)。

3php-fpm調用php解析器來讀取站點磁盤的php檔案,加載到記憶體中

4php解析器将php程式編譯成opcode檔案,然後緩存起來

5php程式将opcpde執行後,傳回給nginx,然後傳回用戶端

6nginx再次接受用戶端請求,會直接從opcode調取,這樣就不用執行第4部,友善簡潔

Php緩存加速器:

  常見的有xcache,eAccelerator,zendOpcache,在企業中常用的還是xcache,其次是eAccelerator。

那麼現在開始安裝緩存加速軟體

環境準備:

就按照我之前的LNMP環境搭建了,有需要的可以看看文檔。

檢視nginx web版本

[root@localhost ~]# /application/nginx/sbin/nginx -v

nginx version: nginx/1.6.2

Php版本

[root@localhost ~]# /application/php/bin/php -v

PHP 5.3.28 (cli) (built: Apr 16 2016 03:56:50)

Copyright (c) 1997-2013 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

Mysql版本

[root@localhost ~]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.5.32 MySQL Community Server (GPL)

LNMP緩存提示:

不論是Apache還是nginx,最後都是通過php提供動态解析程式來進行的,不論是Apache的libphp5.so子產品模式,還是nginx的fastcgi模式,都是一樣的,php引擎優化都是一緻的,都是基于php服務(php.ini)來進行的,兩者之間無差異!

安裝php緩存加速器

那麼我在這裡直接用xcache緩存軟體了。

首先下載下傳xcache

[root@localhost xiaohu]# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2

[root@localhost xcache-3.2.0]# ./configure  --enable-xcache --with-php-config=/application/php/bin/php-config

[root@localhost xcache-3.2.0]# make

Don't forget to run 'make test'. 出現這個成功,繼續install

[root@localhost xcache-3.2.0]# make install

Installing shared extensions:     /application/php/lib/php/extensions/no-debug-non-zts-20090626/

檢視有沒有xcache.so檔案有代表成功

[root@localhost xcache-3.2.0]# ls -l /application/php/lib/php/extensions/no-debug-non-zts-20090626/xcache.so

-rwxr-xr-x. 1 root root 653772  4月 16 22:14 /application/php/lib/php/extensions/no-debug-non-zts-20090626/xcache.so

驗證xcache

修改php.ini 配置xcache

[root@localhost ~]# cd /application/php/lib/

[root@localhost lib]# ls

php  php.ini

[root@localhost lib]# echo  >>php.ini

[root@localhost lib]# echo ';xcache config by xiaohu 20160419--------------' >> php.ini

[root@localhost lib]# tail -2 php.ini

;xcache config by xiaohu 20160419--------------

編輯xcache.ini 修改相關配置參數

[root@localhost ~]# vim xiaohu/xcache-3.2.0/xcache.ini

将修改後的xcache加載到php.ini

[root@localhost ~]# cat xiaohu/xcache-3.2.0/xcache.ini  >> /application/php/lib/php.ini

檢視修改的參數,隻修改了相關的參數