1. 程式人生 > >PHP開啟緩存加速

PHP開啟緩存加速

.so tar.bz2 data title bsp mem pan var down

PHP默認會將Operate Code文件丟棄,緩存加速是將其保存下來,放置共享內存中,以便在下次調用該PHP頁面時重用,避免相同代碼的重復編譯

___________________________________________________________

■ LAMP環境PHP解析原理
___________________________________________________________
Apache接收客戶的PHP程序請求,並根據規則過濾之
Apache將PHP程序請求傳遞給PHP處理模塊libphp5.so
PHP引擎定位磁盤上的PHP文件,並將其加載到內存中解析
PHP處理模塊libphp5.so將PHP源碼編譯成opcode
PHP處理模塊libphp5.so執行opcode,然後把opcode緩存起來
Apache接收客戶端新的PHP程序請求,PHP引擎直接讀取緩存執行opcode文件,並將結果返回

■ LNMP環境PHP解析原理
___________________________________________________________
Nginx接收客戶端的PHP程序訪問請求
Nginx根據擴展名等過濾規則將PHP程序請求傳遞給解析PHP的FCGI(PHP FPM)進程
PHP FPM進程調用PHP解析器讀取站點磁盤上的PHP文件,並加載到內存中
PHP解析器將PHP程序編譯成為opcode文件,然後把opcode緩存起來
PHP FPM引擎執行opcode樹後,返回數據給Nginx,進而返回客戶端
Nginx接收客戶新的PHP程序請求,PHP FPM引擎就會直接讀取緩存中的opcode並執行,將結果返回

■ 緩存加速插件安裝配置(xcache)
___________________________________________________________

  1. [root@Web_server src]# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2
  2. [root@Web_server src]# tar xf xcache-3.2.0.tar.bz2
  3. [root@Web_server src]# cd xcache-3.2.0
  4. [root@Web_server xcache-3.2.0]# /usr/local/php/bin/phpize
  5. [root@Web_server xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config  
  6. [root@Web_server xcache-3.2.0]# make && make install
  7. [root@Web_server xcache-3.2.0]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
  8. total 2208
  9. -rwxr-xr-x 1 root root 1021684 Apr 13 10:33 opcache.a
  10. -rwxr-xr-x 1 root root  538161 Apr 13 10:33 opcache.so
  11. -rwxr-xr-x 1 root root  692628 Apr 18 09:44 xcache.so      #<==生成xcache.so模塊
  12.  
  13. [root@Web_server xcache-3.2.0]# cat /usr/local/src/xcache-3.2.0/xcache.ini >> /usr/local/php/etc/php.ini
  14. [root@Web_server xcache-3.2.0]# tail -85 /usr/local/php/etc/php.ini | egrep -v "^;|^$"
  15. [xcache-common]
  16. extension = xcache.so
  17. [xcache.admin]
  18. xcache.admin.enable_auth = On
  19. xcache.admin.user = "mOo"
  20. xcache.admin.pass = "md5 encrypted password"
  21. [xcache]
  22. xcache.shm_scheme =        "mmap"
  23. xcache.size  =               256M
  24. xcache.count =                 2
  25. xcache.slots =                8K
  26. xcache.ttl   =                 86400
  27. xcache.gc_interval =          3600
  28. xcache.var_size  =            64M

#更改標紅參數,生產環境根據硬件和業務數據來調整

  1. [root@Web_server xcache-3.2.0]# /usr/local/php/bin/php -v    #檢查配置
  2. PHP 5.5.31 (cli) (built: Apr 13 2016 10:29:58)
  3. Copyright (c) 1997-2015 The PHP Group
  4. Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
  5. with XCache v3.2.0, Copyright (c) 2005-2014, by mOo
  6. with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo
  7.  
  8. [root@Web_server ~]# echo -n "szk" |md5sum
  9. [root@Web_server ~]# vim /usr/local/php/etc/php.ini   #配置xcache用戶密碼
  10. xcache.admin.user = "szk"
  11. xcache.admin.pass = "005eff7dd9626f0c30f2eb8003ceafc9"
  12. [root@Web_server ~]# cp -a /usr/local/src/xcache-3.2.0/htdocs/ /data/www/xadmin
  13. [root@Web_server ~]# chown -R nobody.nobody /data/www/xadmin
  14. [root@Web_server ~]# /etc/init.d/php-fpm start

■ 緩存加速插件安裝配置(OPcache)
___________________________________________________________
#若5.5版本,會自動安裝opcache插件,編譯時--enable=opcache啟用

  1. [root@Web_server ~]#  ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/  
  2. -rwxr-xr-x 1 root root  538161 Apr 13 10:33 opcache.so
  3. [root@Web_server ~]# vim /usr/local/php/etc/php.ini  #若編譯沒有啟用,則在配置文件中添加下面內容即可
  4. zend_extension=opcache.so
  5. [opcache]
  6. opcache.memory_consumption=128
  7. opcache.interned_strings_buffer=8
  8. opcache.max_accelerated_files=4000
  9. opcache.revalidate_freq=60
  10. opcache.fast_shutdown=1
  11. opcache.enable=1
  12. opcache.enable_cli=1
  13. [root@Web_server ~]# /usr/local/php/bin/php -v
  14. PHP 5.5.31 (cli) (built: Apr 13 2016 10:29:58) 
  15. Copyright (c) 1997-2015 The PHP Group
  16. Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
  17. with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

PHP開啟緩存加速