FreeBSD使用FastCGI mod_fcgi模块配置Apache 2.2 PHP
时间:2020-01-09 10:38:28 来源:igfitidea点击:
我想从mod_php5切换到mod_fastcgi。
我将使用FreeBSD 7版本以及以下软件:
- Apache 2.2
- PHP作为mod_php5
- MySQL DB 5.1.23服务器
如何将PHP配置为FastCGI服务器?
mod_fcgid具有新的进程管理策略,该策略专注于减少fastcgi服务器的数量,并尽快踢出损坏的fastcgi服务器。
它是Apache模块mod_fastcgi的二进制兼容性替代方案;因此,您现有的fastcgi程序无需重新编译。
mod_fcgid支持suEXEC。
为什么将PHP5作为mod_fcgi/mod_fastcgi运行?
FastCGI与mod_php5相比具有一些重要的优势:
- 您可以进行用户级别分离。您可以为每个用户启用配额。通过进程和CPU消耗限制用户。
- 可以对每个用户进行chroot安全性调用
- 根据几份报告,fastcgi的运行速度比mod_php和cgi模式要快得多。
步骤1:安装mod_fcgid
确保您的端口是最新的:
# portsnap fetch update
安装mod_fcgid:
# cd /usr/ports/www/mod_fcgid # make install clean
确保php支持FastCGI
确保php-cgi二进制文件存在,并且使用fastcgi支持对其进行编译:
# cd /usr/ports/lang/php5 # make showconfig | grep -i FASTCGI
输出:
FASTCGI=on "Enable fastcgi support (CGI only)"
测试fastcgi支持的另一种方法,执行:
# /usr/local/bin/php-cgi -v
输出:
PHP 5.2.5 with Suhosin-Patch 0.9.6.2 (cgi-fcgi) (built: Mar 6 2008 09:15:41) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
如果看不到单词cgi-fcgi,请通过访问/usr/ports/lang/php5重新编译具有fastcgi支持的php。
# cd /usr/ports/lang/php5 # make config # make install clean
步骤3:加载mod_fcgi模块
打开位于/usr/local/etc/apache22 /目录中的httpd.conf文件:
# vi /usr/local/etc/apache22/httpd.conf
加载mod_fcgi模块:
LoadModule fcgid_module libexec/apache22/mod_fcgid.so
配置mod_fcgi
<IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi FCGIWrapper /usr/local/bin/php-cgi .php </IfModule>
找到您的DocumentRoot目录配置选项,内容如下:
<Directory "/usr/local/www/apache22/data">
追加以下两行:
SetHandler fcgid-script FCGIWrapper /usr/local/bin/php-cgi .php Options ExecCGI
最后,配置应如下所示:
# This should be changed to whatever you set DocumentRoot to. <Directory "/usr/local/www/apache22/data"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny SetHandler fcgid-script FCGIWrapper /usr/local/bin/php-cgi .php Options ExecCGI Allow from all </Directory>
步骤4:停用mod_php5
查找如下所示的行:
LoadModule php5_module libexec/apache22/libphp5.so
注释掉一行:
#LoadModule php5_module libexec/apache22/libphp5.so
还要确保存在以下两行(MIME类型):
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
保存并关闭文件。
步骤5:重新启动Apache22
最后,重新启动apache Web服务器:
# /usr/local/etc/rc.d/apache22 restart
步骤5:测试mod_fcgi
使用以下小程序来验证mod_fcgi是否正常工作:
<?php phpinfo(); ?>