PHP以FastCGI方式与LAMP整合

1、系统环境:

[root@zhaochj ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
 
[root@zhaochj ~]# uname -r
2.6.32-358.el6.x86_64
[root@zhaochj ~]# ifconfig | grep Bcast:
          inet addr:192.168.0.200  Bcast:192.168.0.255  Mask:255.255.255.0

2、httpd 2.4源码安装:

请猛戳:httpd 2.4源码安装

3、mysql 5.5通用二进制包安装:

请猛戳:mysql 5.5通用二进制包安装

4、编译安装php,开启fpm:

[root@zhaochj php-5.5.20]# pwd
/root/software/php/php-5.5.20
[root@zhaochj php-5.5.20]# ./configure --prefix=/usr/local/php5.5 --enable-mbstring --enable-xml  --enable-fpm --enable-sockets --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
#--enable-fpm              开启php-fpm
#--enable-maintainer-zts   此选项已删除,因php是已独立方式运行
[root@zhaochj php-5.5.20]# make && make install

为php提供配置文件、为php-fpm提供配置文件及为php-fpm提供启用脚本:

[root@zhaochj php-5.5.20]# cp php.ini-production /etc/php.ini
[root@zhaochj php-5.5.20]# cp /usr/local/php5.5/etc/php-fpm.conf.default /usr/local/php5.5/etc/php-fpm.conf
[root@zhaochj php-5.5.20]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@zhaochj php-5.5.20]# chmod +x /etc/rc.d/init.d/php-fpm
[root@zhaochj php-5.5.20]# chkconfig --add php-fpm
[root@zhaochj php-5.5.20]# chkconfig --list php-fpm
php-fpm         0:off 1:off 2:on  3:on  4:on  5:on  6:off

启动php-fpm及验证php-fpm服务:

[root@zhaochj php-5.5.20]# service php-fpm start
Starting php-fpm  done
[root@zhaochj php-5.5.20]# ps aux | grep php-fpm

5、配置httpd,让其成为fastcgi客户端,并把httpd配置成虚拟主机方式工作:

启用mod_proxy.so及mod_proxy_fcgi.so两个模块:

[root@zhaochj php-5.5.20]# vim /etc/httpd24/httpd.conf
……省略
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
……省略

配置httpd.conf文件,让其对php文件的支持:

[root@zhaochj php-5.5.20]# vim /etc/httpd24/httpd.conf
    ……省略
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php           #新增
    AddType application/x-httpd-php-source .phps   #新增
    ……省略
    <IfModule dir_module>
    DirectoryIndex index.php index.html   #新增index.php
    </IfModule>

停用中心主机,并启用虚拟主机的支持:

[root@zhaochj php-5.5.20]# vim /etc/httpd24/httpd.conf
#DocumentRoot "/usr/local/apache24/htdocs"   #注释此行,关闭中心主机
……
# Virtual hosts
Include /etc/httpd24/extra/httpd-vhosts.conf   #启用此行,开启虚拟主机文件

配置虚拟主机配置文件:

[root@zhaochj php-5.5.20]# vim /etc/httpd24/extra/httpd-vhosts.conf
#注释最后的</VirtualHost>容器,在最后新增下面配置:
<VirtualHost *:80>
     DocumentRoot "/web/zhaochj.com"
     ServerName www.zhaochj.com
     ProxyRequests Off
     ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/zhaochj.com/$1
     <Directory "/web/zhaochj.com">
        Options none
        AllowOverride none
        Require all granted
     </Directory>
</VirtualHost>

准备网页文件目录,建立测试页面:

[root@zhaochj php-5.5.20]# mkdir -p /web/zhaochj.com
[root@zhaochj php-5.5.20]# vim /web/zhaochj.com/index.php 
<?php
     phpinfo();
?>

重新启动httpd:

[root@zhaochj php-5.5.20]# /usr/local/apache24/bin/apachectl -k stop
[root@zhaochj php-5.5.20]# /usr/local/apache24/bin/apachectl -t
Syntax OK
[root@zhaochj php-5.5.20]# /usr/local/apache24/bin/apachectl -k start

访问测试页面:

技术分享

6、优化php5,启用php5自带的代码缓冲机制opcache,不再使用xcache了:

[root@zhaochj php-5.5.20]# vim /etc/php.ini
……省略
[opcache]
zend_extension = /usr/local/php5.5/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
opcache.enable=1
opcache.memory_consumption = 64
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
opcache.enable_cli = 1
……省略

重新启动php-fpm:

[root@zhaochj php-5.5.20]# service php-fpm restart

测试opcache是否启用:

[root@zhaochj php-5.5.20]# /usr/local/php5.5/bin/php -m

技术分享

本文出自 “SNAIL” 博客,请务必保留此出处http://357742954.blog.51cto.com/368705/1608573

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。