如何构建mod_fastcgi对于Apache2在OpenSUSE 12.2上
在Apache之前,Apache需要mod_fastcgi才能使用PHP-FPM。 有一个用于OpenSUSE的apache2-mod_fastcgi
软件包,但不幸的是它是错误的:它不允许您使用vhost内的FastCgiExternalServer
指令,尽管官方的mod_fastcgi文档说这是允许的。 本指南介绍如何从OpenSUSE 12.2系统的Apache2源创建新的mod_fastcgi来解决此问题。
我不会保证这将为您工作!
初步说明
mod_fastcgi可以用于使Apache2与PHP-FPM一起工作(请参阅在OpenSUSE 12.2上使用 PHP2-WPM 与Apache2 )。 不幸的是,如果您决定在虚拟机配置中使用FastCgiExternalServer
指令,Apache将拒绝启动,
apache2ctl -t
给你这个错误:
server1:/etc/apache2/sites-available # apache2ctl -t
Syntax error on line 57 of /etc/apache2/sites-enabled/100-example.com.vhost:
FastCgiExternalServer cannot occur within <VirtualHost> section
server1:/etc/apache2/sites-available #
官方的mod_fastcgi文档说, FastCgiExternalServer
可以在全局服务器配置中使用,也可以在vhost配置中使用,所以这是OpenSUSE的apache2-mod_fastcgi
包中的一个错误。 我们可以建立我们自己的mod_fastcgi,如下所示:
建立mod_fastcgi
首先确保安装了apache2-devel
:
zypper install apache2-devel
下载最新的mod_fastcgi源代码,如下所示:
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
tar xvfz mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6/
cp Makefile.AP2 Makefile
ln -s /usr/include/apache2-worker/mpm.h /usr/include/apache2/
make top_dir=/usr/share/apache2
make top_dir=/usr/share/apache2 install
确保你有线
LoadModule fastcgi_module modules/mod_fastcgi.so |
在/etc/apache2/sysconfig.d/loadmodule.conf中
。
最后重新启动Apache:
/etc/init.d/apache2 restart
而已。 您刚刚用自己的OpenSUSE的mod_fastcgi模块替换了它。
链接
- Apache: http : //httpd.apache.org/
- mod_fastcgi文档: http : //www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html
- OpenSUSE: http : //www.opensuse.org/