在Ubuntu中搭建Apache2模块化或fast-cgi的PHP5环境
在Ubuntu中搭建一般的LAMP环境实在是太简单的一件事, 只需要
$sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5
就好了(差不多, 如果没记错的话).
然而, 这样搭建出来的LAMP环境, PHP是通过Apache2的mod执行的, 这也就是软件包libapache2-mod-php5的作用. 通过mod执行的PHP有速度快, 方便等诸多优势. 不过现在我就是想要它通过Fastcgi执行. 别问为什麽.
找了好多资料, 奇怪怎麽就没人能说清楚, 真是..... 只好自己总结了
----------------------cut here----------
首先, 删除libapache2-mod-php5, 因为没用了(其实不删也可以,只要不加载相关的模块即可)
$sudo a2dismod php5
$sudo apt-get remove libapache2-mod-php5
安装cgi版的php(自己会支持fcgi的,why?难道fcgi是Apache的功能?只是由它去调用php-cgi来解析php程序?)和apache2的action模块
$sudo apt-get install php5-cgi
$sudo a2enmod actions
下面关键了, 总是出错的就是这了。
在你的虚拟主机配置文件内, 其他标签之外添加这些内容:
ScriptAlias /fcgi-bin /usr/bin #注意:必须要有ScriptAlias这一行!而fcgi-bin可以随便取名,只要跟下面Action里第2个参数的路径一样就可以。而如果省略ScriptAlias这一行,而即使下面指明了正确的php解析器文件路径/usr/bin/php5-cgi也是不行的!
Action php-fastcgi /fcgi-bin/php5-cgi
AddHandler php-fastcgi .php #这里的php-fastcgi必须和上一行的第1个参数一致
#下面这2行可以不要,如果你已经在其它地方配置过
AddType application/x-httpd-php .php
Options FollowSymLinks ExecCGI
然后重启apache2, 完事.
山风点评:看起来上面的怎么也不像是fastcgi,更像是单纯的cgi模式!