钉子的玫瑰 发表于 2013-1-1 22:12:38

linux下php以fastcgi模式运行

linux下php以fastcgi模式运行

<div class="postText"><div id="cnblogs_post_body"><div id="cnblogs_post_body">关于PHP以fastcgi方式运行的文章,网络上较多,也许由于转载的原因,有些地方不甚明了,笔者亲自测试,整理成文,供大家参考。
1、linux系统
# cat /etc/redhat-release
CentOS release 5.2 (Final)
2、安装apache
下载并解压缩apache,本文演示用的版本是2.2.19
# wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz
# tar xvzf httpd-2.2.19.tar.gz
编译和安装apache,本文的目的只是演示php以fastcgi方式运行,为了方便,只选必须的参数编译
# cd httpd-2.2.19
#./configure --enable-so
#make
#make install
3、安装mod_fcgid(注意是mod_fcgid,不是mod_fastcgi)
下载并解压缩mod_fcgid,本文测试时用的版本是2.3.6
wget http://labs.renren.com/apache-mirror//httpd/mod_fcgid/mod_fcgid-2.3.6.tar.gz
tar xvzf mod_fcgid-2.3.6.tar.gz
编译并安装mod_fcgid
cd mod_fcgid-2.3.6
APXS=/usr/local/apache2/bin/apxs ./configure.apxs
make
make install
注释:网络上部分文档没有APXS=/usr/local/apache2/bin/apxs,详情参考mod_fcgid软件中的README-FCGID文档
4、安装PHP
下载并加压缩PHP,PHP版本是5.3.6
wget http://www.php.net/get/php-5.3.6.tar.bz2/from/cn.php.net/mirror
tar xvjf php-5.3.6.tar.bz2
编译并安装PHP
cd php-5.3.6
./configure --prefix=/usr/local --with-configure-file-path=/etc
make
make install
http://www.bandaoit.cn/attachments/2011/08/1_201108020022351eV34.jpg
注释:要是有库文件报错,请安装相关库文件,笔者的系统上曾报libxml2的错,yum install libxml2-devel,解决问题。网络上很多文档,说要使用--enable-fastcgi这个参数,笔者在./configure --help中没有找到这个参数,倒是找到一个--disable-cgi的参数,因而决定不加--enable-fastcgi这个参数,此后证实这个参数可以不加。--with-apxs2这个参数一定不能加。
5.配置
创建FastCGI脚本目录
# mkdir /usr/local/apache2/fcgi-bin
# ln -s /usr/local/php/bin/php-cgi /usr/local/apache2/fcgi-bin/php-cgi
编辑apache配置文件
# vi /usr/local/apache/conf/httpd.conf
加入以下内容
ScriptAlias /fcgi-bin/ "/usr/local/php5/bin/"
AddHandler php-fastcgi .php
Action php-fastcgi /fcgi-bin/php-cgi
AddType application/x-httpd-php .php
<IfModule mod_fcgid.c>
    IdleTimeout 300
    ProcessLifeTime 1800
    MaxProcessCount 100
    DefaultMinClassProcessCount 3
    DefaultMaxClassProcessCount 8
    IPCConnectTimeout 15
    IPCCommTimeout 300
    MaxRequestsPerProcess 100
</IfModule>
<Directory /usr/local/apache2/fcgi-bin>   
      AllowOverride None
      Options FollowSymLinks +ExecCGI
      Order allow,deny
      Allow from all
</Directory>
修改
<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks +ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
注释:笔者测试的test.php文件放在htdocs目录下面,因此htdocs目录的权限需要ExecCGI,若目录不同,请赋予目录ExecCGI的权限。另LoadModule fcgid_module modules/mod_fcgid.so 这个再装mod_fcgid的时候,自动添加了。
6、验证
编辑测试页面
# vi /usr/local/apache2/htdocs/test.php
<?php
echo phpinfo();
?>
在浏览器栏目输入http://x.x.x.x/test.phphttp://www.bandaoit.cn/attachments/2011/08/1_20110802002734176uM.jpg

转载于:www.cnblogs.com/zfying/archive/2012/07/24/2606642.html
页: [1]
查看完整版本: linux下php以fastcgi模式运行