1. 程式人生 > >centos6.9編譯安裝php5.6(基於php-fpm模式)

centos6.9編譯安裝php5.6(基於php-fpm模式)

php-pfm xcache

寫在前面

centos6默認安裝的httpd2.2是不支持fcgi模式的,那麽如何在6上實現fpm模式呢,這裏需要編譯安裝httpd2.4(具體步驟參見之前的博文)。

前提:

  1. 編譯安裝httpd2.4

  2. 二進制安裝mariadb5.5

  3. yum 安裝相關包組bzip2-devel,libxml2-devel,libmcrypt-devel(epel源)

編譯安裝php

]#tar xvf php-5.6.31.tar.xz 
]#cd php-5.6.31
./configure --prefix=/app/php5 --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir  --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php5 --with-config-file-scan-dir=/etc/php5.d --with-bz2
]#make -j 4 && make install

實現php的配置文件和服務腳本

]#mkdir/etc/php5 
]#cd php-5.6.30/
]#cp php.ini-production /etc/php5/php.ini
]#cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
]#chmod +x /etc/rc.d/init.d/php-fpm
]#chkconfig --add php-fpm
]#chkconfig --list php-fpm
php-fpm         0:off   1:off   2:on    3:on    4:on    5:on    6:off

配置環境

]#vim /etc/profile.d/httpd24.sh
export PATH=/app/php5/bin/:/usr/local/mysql/bin/:/app/httpd24/bin:$PATH   <===httpd和mysql都是編譯安裝的,環境都配置在這裏了。
]#. /etc/profile.d/httpd24.sh

編輯php配置文件

]#cd /app/php5/etc
]#cp php-fpm.conf.default  php-fpm.conf   <===一些端口信息可以在配置。

修改httpd24的配置文件

]#vim /etc/httpd24/httpd.conf
LoadModule proxy_module modules/mod_proxy.so     <===取消兩行的註釋
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off                         <===關閉正向代理
ProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
<IfModule dir_module>    
DirectoryIndex index.php index.html      <===添加index.php
</IfModule>
]#service httpd24 restart

測試

]#vim /app/httpd24/htdocs/index.php
<?php
$mysqli=new mysqli("localhost","root","centos");
if(mysqli_connect_errno()){
echo "連接數據庫失敗!";
$mysqli=null;
exit;
}
echo "連接數據庫成功!";
$mysqli->close();
phpinfo();
?>

技術分享

]#ab -c 10 -n 100 
Time per request:       14.981 [ms] (mean)
Time per request:       1.498 [ms] (mean, across all concurrent requests)
Transfer rate:          45934.30 [Kbytes/sec] received

可以看到網站性能比php7要稍微差一些,不過這裏支持php5支持加速器,這裏我們介紹一下加速器是什麽?

php的加速器

基於PHP的特殊擴展機制如opcode緩存擴展也可以將opcode緩存於php的共享內存中,從而可以讓同一段代碼的後續重復執行時跳過編譯階段以提高性能。這些加速器並非真正提高了opcode的運行速度,而僅是通過分析opcode後並將它們重新排列以達到快速執行的目的


常見的php加速器有:
1.APC (Alternative PHP Cache):遵循PHP License的開源框架,PHP opcode緩存加速器,目前的版本不適用於PHP 5.4
項目地址http://pecl.php.net/package/APC
2.eAccelerator:源於Turck MMCache,早期的版本包含了一個PHP encoder和PHP loader,目前encoder已經不在支持。項目地址http://eaccelerator.net/

3.XCache:快速而且穩定的PHP opcode緩存,經過嚴格測試且被大量用於生產環境。項目地址:http://xcache.lighttpd.net/,收錄EPEL源
4.Zend Optimizer和Zend Guard Loader:Zend Optimizer並非一個opcode加速器,它是由Zend Technologies為PHP5.2及以前的版本提供的一個免費、閉源的PHP擴展,其能夠運行由Zend Guard生成的加密PHP代碼或模糊代碼。而Zend Guard Loader則是專為PHP5.3提供的類似於Zend Optimizer功能的擴展。項目地址http://www.zend.com/en/products/guard/runtime-decoders
5.NuSphere PhpExpress:NuSphere的一款開源PHP加速器,它支持裝載通過NuSphere PHP Encoder編碼的PHP程序文件,並能夠實現對常規PHP文件的執行加速。項目地http://www.nusphere.com/products/phpexpress.htm

這裏我們著重介紹一下XCache

安裝方法
1.rpm包:來自epel源
2.編譯安裝

rpm包就無需多說了,我們介紹一下編譯安裝

前提

1.官網下載包:http://xcache.lighttpd.net/wiki/ReleaseArchive

2.安裝包組:php-devel

步驟:

]#tar xvf xcache-3.2.0.tar.bz2 
cd xcache-3.2.0
]#phpize                    <===來自於php-devel
]#./configure  --enable-xcache --with-php-config=/app/php5/bin/php-config
]#make && make install
]#mkdir /etc/php5.d/
]#cp xcache.ini  /etc/php5.d/
]#vim/etc/php5.d/xcache.ini 
extension = /app/php5/lib/php/extensions/no-debug-non-zts-20131226/xcache.so   <===這個路徑在編譯完成時會提示,需要註意
]#service php-fpm restart

測試

]#ab -c 10 -n 100 
Time per request:       19.222 [ms] (mean)
Time per request:       1.922 [ms] (mean, across all concurrent requests)
Transfer rate:          35799.69 [Kbytes/sec] received

技術分享

刷新頁面可以看到已經加速了,通過測試網站性能比之前有個明顯的提升。


centos6.9編譯安裝php5.6(基於php-fpm模式)