当前位置:
首页 > Win环境 > 教程分享 > IIS6下配置fastcgi的php的教程

IIS6下配置fastcgi的php的教程

环境:
操作系统:Windows 2003 Server SP2
PHP 版本:php-5.2.6-Win32
1.下载 FastCGI For IIS6
http://www.iis.net/download/fastcgi
下载之后,双击运行进行安装。
安装后在 C:WINDOWSsystem32inetsrv 目录下产生了五个文件。如下图:
IIS6下配置fastcgi的php的教程
  • fcgiext.dll – fastcgi处理程序
  • fcgiext.ini – 配置文件
  • fcgiconfig.js – FastCGI的控制脚本
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。
IIS6下配置fastcgi的php的教程
2.下载 PHP5.2.14 Windows 版
http://www.php.net/downloads.php
下载 .zip 格式的版本,下载后解压至 c:PHP 目录,并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图:
IIS6下配置fastcgi的php的教程
你可以根据自己的意愿解压到别的目录。
3. 注册 PHP 到 FastCGI
打开 C:WINDOWSsystem32inetsrv cgiext.ini 文件。
; This is the configuration file for the FastCGI handler for IIS 6.0.
; The FastCGI handler will look for this file in the same directory as
; fcgiext.dll. By default, the FastCGI installer will place this file into
; the %windir%system32inetsrv directory.
我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。
在 [Types] 下添加以下配置:
[Types]
php=PHP
[PHP]
ExePath=C:PHPphp-5.2.14-Win32php-cgi.exe
“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。
4. 配置 php.ini
将 C:PHPphp-5.2.14-Win32php.ini-recommended 复制一个,然后重命名为 D:PHPphp.ini
打开 C:PHPphp-5.2.14-Win32php.ini,修改:
extension_dir = "C:PHPphp-5.2.14-Win32ext"
fastcgi.impersonate = 1

 

其它的根据实际需要对 php.ini 进行设置修改,这里只针对能跑 php,修改完记得重启 IIS。
5. 配置网站
右键网站 => 属性 => 主目录 => 配置 => 添加,如下图配置:
IIS6下配置fastcgi的php的教程
可执行文件路径:C:WINDOWSsystem32inetsrv cgiext.dll
6. 写个 php 测试下吧
phpinfo();
?>
看到类似以下效果说明你的服务器可以跑 php 了。
IIS6下配置fastcgi的php的教程
打开后如果出现提示:No input file specified. 估计是没配置 fastcgi.impersonate。

 

重启IIS后,打开测试页出现如下提示:

FastCGI Error
The FastCGI Handler was unable to process the request.
--------------------------------------------------------------------------------

Error Details:

Error Number: 5 (0x80070005).
Error Description: 拒绝访问。
HTTP Error 500 - Server Error.
Internet Information Services (IIS)

这个错误是由于在解压PHP之后,没有对IIS启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.

此错误出现的原因就是php-cgi.exe这个文件没有访问到,排查原因即可,比如防火墙,杀毒软件有没有限制,我碰到过 网站安全狗
(主动防御里面禁止iis执行程序加入白名单即可) 软件屏蔽执行这个文件导致出现这个错误。