上次介绍了有关php以模块的方式结合apache工作,这次介绍一下php以fpm的方式结合apache工作的过程!

编译安装LAMP,使用的操作系统为CentOS 6版本,ip地址:192.168.1.101;

httpd和mariadb,以及xcache为php加速的编译过程没有变化,跟上次介绍的过程一样,这里就不多做介绍了!

注:不知道编译过程的朋友请查看《LMAP编译介绍一》所讲内容!

下面开始主要介绍php的编译!!


php-5.4.40的编译

1、解决依赖关系

[root@localhost~]#yumgroupinstall-y"Developmenttools""ServerPlatformDevelopment"[root@localhostphp-5.4.40]#yuminstall-ylibxml2-devel[root@localhostphp-5.4.40]#yuminstallbzip2-devel-y[root@localhost~]#yumlocalinstalllibmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm[root@localhost~]#yumlocalinstalllibmcrypt-devel-2.5.7-1.2.el6.rf.x86_64.rpm


2、编译安装php-5.4.40

[root@localhost~]#mkdir/etc/php5[root@localhost~]#mkdir/etc/php.d[root@localhost~]#cdphp-5.4.40[root@localhostphp-5.4.40]#./configure--prefix=/usr/local/php5//指明安装目录--with-mysql=/usr/local/mysql//指明mysql安装目录--with-openssl//使用openssl--with-mysqli=/usr/local/mysql/bin/mysql_config//mysql的另一个接口--enable-mbstring//支持多字节字符串,多种语言使用--with-freetype-dir//一种字体格式目录--with-jpeg-dir//jpeg格式文件目录--with-png-dir//png格式文件目录--with-zlib//支持压缩--with-libxml-dir=/usr//xml的库目录--enable-xml//支持xml--enable-sockets//支持套接字--enable-fpm//重点:支持fpm--with-mcrypt//支持加密解密--with-config-file-path=/etc/php5//php配置文件目录--with-config-file-scan-dir=/etc/php.d//php的辅助配置文件目录--with-bz2//支持bz2压缩[root@localhostphp-5.4.40]#make-j4[root@localhostphp-5.4.40]#makeinstall[root@localhostphp-5.4.40]#cpphp.ini-production/etc/php5/php.ini[root@localhostphp-5.4.40]#cpsapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm[root@localhostphp-5.4.40]#chmod+x/etc/rc.d/init.d/php-fpm[root@localhostphp-5.4.40]#chkconfig--addphp-fpm[root@localhostphp-5.4.40]#chkconfigphp-fpmon[root@localhostphp-5.4.40]#chkconfig--listphp-fpm为php-fpm提供配置文件:#cp/usr/local/php5/etc/php-fpm.conf.default/usr/local/php5/etc/php-fpm.conf编辑php-fpm的配置文件:#vim/usr/local/php5/etc/php-fpm.conf配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):listen=0.0.0.0:9000//监听ip及端口pm.max_children=50pm.start_servers=5pm.min_spare_servers=2pm.max_spare_servers=5pid=/usr/local/php5/var/run/php-fpm.pid接下来就可以启动php-fpm了:#servicephp-fpmstart

3、配置httpd-2.4

1、启用httpd的相关模块

在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

# vim /etc/httpd24/httpd.conf

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


2、添加如下二行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps


3、定位至DirectoryIndex index.html

修改为:

DirectoryIndex index.php index.html


4、配置支持使用fcgi

ProxyRequests Off //关闭正向代理

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1

//把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。


5、测试php是否已经可以以fpm的方式结合apache工作

至此php以fpm方式结合apache工作介绍完毕!!