网上找了一圈,关于如何设置 Apache2 + FastCGI + PHP 竟然没有完整的资料,都是简单的提示,看来要么是多数文章的作者没有实际设置过,要么有藏私之嫌。找得好辛苦,出于同感,将自己的成果共享一下。以下过程以 FreeBSD 5.4 系统环境下 PHP 4.x 为准:
1、安装Apache2:
cd /usr/ports/www/apache2
make install clean
2、安装mod_fastcgi:
cd /usr/ports/www/mod_fastcgi
make install clean
3、安装php4-cgi:
cd /usr/ports/www/php4-cgi
make config
make install clean
提示:
A)、make config 窗口一定要选中
FASTCGI,其他的自己看着办;
B)、此 Package 和 Php-4.4.0 等冲突,需要预先卸载其他冲突包;
C)、安装完成后,运行“ php -v ”,应该可以看到类似“
PHP 4.4.0 (cgi-fcgi) ”的字样,说明
PHP 已经支持 fastcgi 了。 4、配置fcgi-bin目录:
mkdir -p /usr/local/www/fcgi-bin
ln -s /usr/local/bin/php /usr/local/www/fcgi-bin/php
chown -R www:www /usr/local/www/fcgi-bin
mkdir -p /tmp/fcgi_ipc
chown -R www:www /tmp/fcgi_ipc
5、设置Apache的httpd.conf文件:
### mod_actions,后面的Action命令需要
LoadModule actions_module libexec/apache2/mod_actions.so
LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so
<IfModule mod_fastcgi.c>
FastCgiIpcDir "/tmp/fcgi_ipc/"
FastCgiServer /usr/local/www/fcgi-bin/php -processes 10
ScriptAlias /fcgi-bin/ "/usr/local/www/fcgi-bin/"
AddHandler php-fastcgi .php
<Location /fcgi-bin/php>
SetHandler fastcgi-script
</Location>
Action php-fastcgi /fcgi-bin/php
AddType application/x-httpd-php .php
### 此处三条命令是为了保护你的/fcgi-bin/php文件不被非法访问
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/fcgi-bin/.* [NC]
RewriteRule .*/php$ /nonexistent.file [L]
</IfModule>
6、更多关于 FastCGI 的设置参数,请参考 mod_fastcgi 。
7、其他关于 PHP 的加速器什么的,自行添加!