配置 IIS 6 用 FastCGI 方式加载 PHP5
  • 分类:PHP
  • 发表:2011-11-25
  • 围观(1,703)
  • 评论(0)

到昨天为止,公司的服务器一直是用 ISAPI 方式调用的PHP,但是今天调试一个系统,必须要求 FastCGI 方式。

FastCGI 是可伸缩架构的 CGI 开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的 CGI 解释器的反复加载是 CGI 性能低下的主要原因,如果CGI 解释器保持在内存中并接受 FastCGI 进程管理器调度,则可以提供良好的性能、伸缩性等。

FastCGI 已经集成于 IIS7,我公司的服务器是 Windows 2003 的 IIS6,必需另外安装扩展。到微软网站下载吧 x86 / x64。微软也有官方的安装说明

其实没那么复杂啦。下面简单说下:

1.下载FastCGI for IIS6 后安装,安装目录是 C:\WINDOWS\system32\inetsrv。

同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。

2.修改 C:\WINDOWS\system32\inetsrv\fcgiext.ini

在 [Types] 下添加以下配置:

[Types]
php=PHP

[PHP]
ExePath=D:\PHP\php-cgi.exe

3.下载 PHP 5 for windows,下载zip文件,下载后解压到 D:\php (其他目录也可,以此为例),并给 IIS 启动帐户组或用户赋予读取和运行权限。

4.将 D:\PHP\php.ini-recommended 复制一个,然后重命名为 D:\PHP\php.ini

打开 D:\PHP\php.ini,修改:

fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0

并且根据需要修改php扩展的加载。

5.重启IIS。

6.写个 php 测试下吧

<?php
phpinfo();
?>

打开后如果出现提示:

No input file specified.

估计是没配置php.ini 里的 fastcgi.impersonate=1,去掉注释即可。

如果出现 Error Number:14001错误,则是没有安装 VC9 运行库 即 VISUAL C++ 2008(仅出现于 PHP 5.3,PHP 5.2 没这个问题),下载地址,下载安装后即可正常运行。

网上有人说 Fast-CGI 模式调用要比 ISAPI 快不少,实际用下,普通的应用其实差不多,都挺快的。Fast-CGI 的优点是,不用拷贝 php5ts.dll 和 php.ini 到 Windows 目录下。缺点是,会多一个 php-cgi.exe 进程。

共有 0 条评论

Top