写在前面
centos6默认安装的httpd2.2是不支持fcgi模式的,那么如何在6上实现fpm模式呢,这里需要编译安装httpd2.4(具体步骤参见之前的博文)。
前提:
编译安装httpd2.4
二进制安装mariadb5.5
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-fpmphp-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
配置环境
]#vim /etc/profile.d/httpd24.shexport 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.confLoadModule proxy_module modules/mod_proxy.so <===取消两行的注释LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.soAddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phpsProxyRequests 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();?>
650) this.width=650;" title="php-fpm.png" alt="wKiom1nfg0uyGWm4AABsOy6ctLI486.png" src="https://s1.51cto.com/wyfs02/M00/08/53/wKiom1nfg0uyGWm4AABsOy6ctLI486.png" />
]#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
650) this.width=650;" title="php-fpm2.png" alt="wKioL1nfg0qCzZqFAAA2CO9apQA034.png" src="https://s1.51cto.com/wyfs02/M00/A7/0A/wKioL1nfg0qCzZqFAAA2CO9apQA034.png" />
刷新页面可以看到已经加速了,通过测试网站性能比之前有个明显的提升。
centos6.9编译安装php5.6(基于php-fpm模式)
原文地址:http://maguofu.blog.51cto.com/12431016/1971880