___________________________________________________________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文件,並將結果返回vim
■ 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)
___________________________________________________________php-fpm
-
[root@Web_server src]# wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2
-
[root@Web_server src]# tar xf xcache-3.2.0.tar.bz2
-
[root@Web_server src]# cd xcache-3.2.0
-
[root@Web_server xcache-3.2.0]# /usr/local/php/bin/phpize
-
[root@Web_server xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
-
[root@Web_server xcache-3.2.0]# make && make install
-
[root@Web_server xcache-3.2.0]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
-
total 2208
-
-rwxr-xr-x 1 root root 1021684 Apr 13 10:33 opcache.a
-
-rwxr-xr-x 1 root root 538161 Apr 13 10:33 opcache.so
-
-rwxr-xr-x 1 root root 692628 Apr 18 09:44 xcache.so #<==生成xcache.so模塊
-
-
[root@Web_server xcache-3.2.0]# cat /usr/local/src/xcache-3.2.0/xcache.ini >> /usr/local/php/etc/php.ini
-
[root@Web_server xcache-3.2.0]# tail -85 /usr/local/php/etc/php.ini | egrep -v "^;|^$"
-
[xcache-common]
-
extension = xcache.so
-
[xcache.admin]
-
xcache.admin.enable_auth = On
-
xcache.admin.user = "mOo"
-
xcache.admin.pass = "md5 encrypted password"
-
[xcache]
-
xcache.shm_scheme = "mmap"
-
xcache.size = 256M
-
xcache.count = 2
-
xcache.slots = 8K
-
xcache.ttl = 86400
-
xcache.gc_interval = 3600
-
xcache.var_size = 64M
#更改標紅參數,生產環境根據硬件和業務數據來調整ui
-
[root@Web_server xcache-3.2.0]# /usr/local/php/bin/php -v #檢查配置
-
PHP 5.5.31 (cli) (built: Apr 13 2016 10:29:58)
-
Copyright (c) 1997-2015 The PHP Group
-
Zend 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
-
-
[root@Web_server ~]# echo -n "szk" |md5sum
-
[root@Web_server ~]# vim /usr/local/php/etc/php.ini #配置xcache用戶密碼
-
xcache.admin.user = "szk"
-
xcache.admin.pass = "005eff7dd9626f0c30f2eb8003ceafc9"
-
[root@Web_server ~]# cp -a /usr/local/src/xcache-3.2.0/htdocs/ /data/www/xadmin
-
[root@Web_server ~]# chown -R nobody.nobody /data/www/xadmin
-
[root@Web_server ~]# /etc/init.d/php-fpm start
■ 緩存加速插件安裝配置(OPcache)
___________________________________________________________
#若5.5版本,會自動安裝opcache插件,編譯時--enable=opcache啓用spa
-
[root@Web_server ~]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
-
-rwxr-xr-x 1 root root 538161 Apr 13 10:33 opcache.so
-
[root@Web_server ~]# vim /usr/local/php/etc/php.ini #若編譯沒有啓用,則在配置文件中添加下面內容便可
-
zend_extension=opcache.so
-
[opcache]
-
opcache.memory_consumption=128
-
opcache.interned_strings_buffer=8
-
opcache.max_accelerated_files=4000
-
opcache.revalidate_freq=60
-
opcache.fast_shutdown=1
-
opcache.enable=1
-
opcache.enable_cli=1
-
[root@Web_server ~]# /usr/local/php/bin/php -v
-
PHP 5.5.31 (cli) (built: Apr 13 2016 10:29:58)
-
Copyright (c) 1997-2015 The PHP Group
-
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
-
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies