PHP 5.3.1 与 IIS 6.0 返回 404 但文件确实存在

PHP 5.3.1 与 IIS 6.0 返回 404 但文件确实存在

我安装了适用于 Windows x86 的 PHP 5.3.1 VC9,并选择 IIS FastCGI 作为目标 Web 服务器。我的系统是 32 位 Windows XP,带有 IIS 6.0。在此之前,我安装了 IIS FastCGI 扩展。

现在,当我浏览我的网站时,我仍然可以看到我所有的旧文件,但任何扩展名为 .php 的文件现在都会返回 404 错误,即使该文件存在。

尽管微软产品在提供错误响应时给出了彻头彻尾的谎言(404 表示未找到,500+ 表示 WEBSERVER 错误),我该怎么做才能按照C:\Program Files\PHP\php-cgi.exe配置文件中指定的方式通过 FastCGI 处理器实际运行我的 PHP 文件C:\Windows\system32\inetsrv\fcgiext.ini

[Types]
php=PHP

[PHP]
ExePath=C:\Program Files\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:C:\Program Files\PHP\

这是 PHP 安装程序中的现成配置。显然,它起作用了,因为如果 IIS 不知道必须对这些文件进行特殊处理,它就不会开始谎称 PHP 文件存在。

答案1

好的,经过多次反复尝试,我发现了问题所在。

我不得不:

  • 右键单击“我的电脑”,选择“管理”
  • 打开“服务和应用程序”->“Internet 信息服务”->“网站”->我的网站(在哪里我的网站可以是“默认网站”或我的网站的任何名称)
  • 右击我的网站并选择“属性”
  • 选择“主目录”选项卡,选择配置...按钮
  • 选择 .php 扩展名并选择“编辑...”按钮,或者如果未列出 .php,则按“添加...”按钮
  • 制作可执行文件C:\WINDOWS\system32\inetsrv\fcgiext.dll、扩展名.php,并确保动词仅限于GET,HEAD,POST,选中“脚本引擎”和“验证文件是否存在”复选框

相关内容