在IIS6 配置使用php的fastcgi模式
1.下载FastCGI For IIS6
fastcgi页面:http://www.iis.net/download/fastcgi
CGI配置教程 http://learn.iis.net/page.aspx/247/using-fastcgi-to-host-php-applications-on-iis-60/
2、下载 php5.4
php on windows页面:http://www.microsoft.com/web/platform/phponwindows.aspx
php 5.4 下载地址:http://windows.php.net/downloads/releases/php-5.4.0-nts-Win32-VC9-x86.zip
解压到C:\php目录下
设置IIS启动帐号对 C:\php\ 有读取执行权限
3、注册PHP到FastCGI(原理是在fastcgi的ini中,增加一个扩展。)
cscript fcgiconfig.js -add -section:"php" -extension:php -path:"C:\php\php-cgi.exe"
fcgiconfig.js 在 C:\WINDOWS\system32\inetsrv 目录下。
4、做一些性能和安全设置
C:\php\php.ini-recommended重命名为为C:\php\php.ini
打开C:\php\php.ini,修改:
extension_dir = "C:\php\ext"
fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
php.ini 其他的地方设置跟平时配置isapi 模式一样;
执行:
cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:10000
cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
以上两项设置最大池和响应连接数,可以根据自己的硬件配置、使用情况修改
如果上面的命令无效,可以打开才C:\windows\system32\inetsrv\fcgiext.ini 内容如下:
[Types]
php=php
[php]
ExePath=C:\php\php-cgi.exe
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
然后重启IIS。
5、设置php.ini
date.timezone =Asia/Shanghai
short_open_tag = ON
display_errors = ON
variables_order = "EGPCS"
default_charset = "utf-8"
打开mysql的支持(去掉前缀的分号):
extension=php_mysql.dll
extension_dir = "ext"
放一个测试文件运行看看:
<?php phpinfo(); ?>
6、注意:
IIS6中已经创建的站点,不会自动添加.php映射。新建的站点,则会自动添加.php的映射。
如果提示14001错误,是因为VC9运行库没有安装的缘故。
FastCGI Error
The FastCGI Handler was unable to process the request.
--------------------------------------------------------------------------------
Error Details:
Error Number: 14001 (0x800736b1).
Error Description: 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
Microsoft Visual C++ 2008 Redistributable Package (x86)下载地址:
下载后安装即可。
7、不支持请求。 如果提示“不支持请求”,那就创建一个.php的映射。
.php 勾选脚本引擎(默认),指向 C:\WINDOWS\system32\inetsrv\fcgiext.dll 。即可。
#End