为什么在装有 IIS 7.0 的 Server 2008 上任何 .php 页面都会出现 404 错误?

为什么在装有 IIS 7.0 的 Server 2008 上任何 .php 页面都会出现 404 错误?

我正在使用 FastCGI 设置 PHP。我按照 iis.net 网站上的说明操作。我添加了处理程序映射,并按指定方式编辑了 php.ini 文件。但这些都不起作用,我只是收到 404.0 错误,提示“您正在寻找的页面已被删除”,尽管错误页面上显示的物理路径存在。在尝试这种手动方法(解压缩 php、手动添加句柄映射等)后,我删除了所有内容,并尝试了 Web 平台安装程序(呃),但我仍然遇到同样的问题。

更多信息:
详细错误页面显示处理程序是我的 StaticFile 处理程序(不是 PHP FastCGI)。它还给出错误代码 0x80070002

当我查看日志时,它显示“GET /php.ini”给出 404 错误。为什么 IIS 要查找这个?

答案1

只是想补充一下这个愚蠢的答案,以防其他人遇到同样的问题。“一个伙伴”在服务器上创建了测试文件。他得到了 404 错误。发生的事情是,Windows 隐藏了文件扩展名,所以文件实际上被称为 index.php.txt... 这 30 分钟一点也不好玩。

答案2

好吧,我不确定我做了什么,但不知怎么的我修复了它。我删除了该网站并重新添加它,然后检查了我的 FastCGI 映射设置,一切看起来都和以前一样,但这次它起作用了。如果可能的话,我仍然想知道为什么我会收到错误。

答案3

php-cgi.exe当我收到此错误消息时,我注意到目录中甚至没有文件C:\Program Files\PHP

我发现的另一个有用的方法是,如果您收到 FastCGI 错误,请尝试直接双击该php-cgi.exe文件,然后在崩溃时查看 Windows 应用程序日志中的错误。我是从一位PHP 错误报告

[2010-04-22 06:43 UTC] sejo at iteontech dot com

在调试 IIS 和一堆其他疯狂的东西之后,这个方法对我有用。我在 Windows 7 和 IIS 7 上安装了 PHP 5.3.2。尝试执行 PHP-CGI.EXE(通过双击它)。看看您是否收到任何错误消息/弹出窗口。我收到了很多这样的消息,归根结底是因为打开了一堆扩展,但在我的 ext 文件夹中却不可用。清除 PHP.INI 中的这些无效扩展,问题应该会消失。

答案4

我对这个错误的解决方案分为两部分:

  1. (来自@icc97 的回答)——双击 PHP 文件夹中的 php-cgi.exe 以确保它可以正常启动。
  2. 事实证明我的index.php文件确实被命名了index.php.htm(关闭“隐藏文件扩展名”)

相关内容