apache中配置php支持模块模式、cgi模式和fastcgi模式

首先安装apache、mysql和php,依次顺序安装。php

1.apache、mysql的安装比较简单,略过mysql

2. php的安装,我安装的是php5.3.6内置了php-fpm,因此不须要再单独下补丁了。sql

./configure –prefix=/usr/local/php5 /  --with-mysql=/usr/local/mysql /  --enable-fpm   --with-apxs2=/usr/local/apache/bin/apxs
apache

注意:vim

--enable-fastcgiapp

--enable-force-cgi-redirectphp-fpm

这2个php新版本已经内置支持,因此若是加上这2个参数,make完毕会提示这2个参数找不到,因此不须要加这2个参数了。 测试

--with-apxs2进程

这个参数看到有的文章说须要fastcgi模式的话,就不能配置这个,其实也不彻底是这样,这个参数的用途只不过是把php的解释模块编译成so文件添加到apache的modules中,而且自动添加到conf文件。若是咱们不想用模块模式的话,在httpd.conf中把:LoadModule php5_module modules/libphp5.so这行注释掉就能够了。get

3.mod_fastcgi的安装

#wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz

# tar -zxvf mod_fastcgi-2.4.6.tar.gz

# cd mod_fastcgi-2.4.6

# cp Makefile.AP2 Makefile

# vim Makefile 将Makefile中的路径改为你的apache的安装路径

# make install 安装成功

安装成功后,会自动把mod_fastcgi.so复制到/usr/local/apache/modules目录  

接下来是如何配置这4种模式:

1.模块模式

这种模式最简单,在http.conf中增长

LoadModule php5_module modules/libphp5.so

便可。而后在

<IfModule mime_module>

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

2.CGI模式

这种模式须要注释掉

LoadModule php5_module modules/libphp5.so 这行。若是不注释这行会一直走到handler模式。也就是模块模式。

而后在httpd.conf增长action:

Action application/x-httpd-php /cgi-bin/php-cgi

若是在/cgi-bin/目录找不到php-cgi.可自行从php的bin里面cp一个。

而后重启apache,再打开测试页面发现Server API变成:CGI/FastCGI。说明成功切换为cgi模式。

3.FastCgi模式,用apche内置进程管理器

首先要添加fastcgi模块到httpd.conf配置文件:

LoadModule fastcgi_module modules/mod_fastcgi.so

 这种模式注释不注释LoadModule php5_module modules/libphp5.so这行貌似没什么关系,只要配置了如下模块

<IfModule fastcgi_module>
   FastCgiServer /usr/local/apache/cgi-bin/php-cgi -processes 20
   AddType application/x-httpd-php .php

   AddHandler php-fastcgi .php

   Action php-fastcgi /cgi-bin/php-cgi
</IfModule>

就会自动走到fastcgi模式。

而后重启apache,这个时候用 ps aux|grep php就会发现有不少php-cgi进程在运行。说明配置生效

4.FastCgi模式,用php-fpm进程管理器

首先要添加fastcgi模块到httpd.conf配置文件:

LoadModule fastcgi_module modules/mod_fastcgi.so

接着修改配置文件成:

<IfModule fastcgi_module>
   FastCgiExternalServer /usr/local/apache/cgi-bin/php-cgi -host 127.0.0.1:9000

   AddType application/x-httpd-php .php

   AddHandler php-fastcgi .php

   Action php-fastcgi /cgi-bin/php-cgi
</IfModule>

注意,127.0.0.1:9000是php-fpm的开启端口,因此咱们还须要把php-fpm打开。

/usr/local/php/sbin/php-fpm

打开后再ps aux|grep php,会发现不少php-fpm的进程:

root      7002  0.4  1.5  13060  1912 ?        Ss   15:20   0:00 php-fpm: master process (/usr/local/php5/etc/php-fpm.conf)nobody    7003  0.0  1.3  13052  1656 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7004  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7005  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7006  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7007  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7008  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7019  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7020  0.0  1.3  13052  1676 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7021  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool wwwnobody    7022  0.0  1.3  13052  1676 ?        S    15:20   0:00 php-fpm: pool www

相关文章
相关标签/搜索