为什么我会收到 500 内部服务器错误? - IIS7 - 带有 PHP 的 FastCgiModule

为什么我会收到 500 内部服务器错误? - IIS7 - 带有 PHP 的 FastCgiModule

我从外部收到“500 - 内部服务器错误”,本地连接给出 500 错误以及一些调试信息。问题似乎出在 FastCgiModule 上:

HTTP Error 500.0 - Internal Server Error
An unknown FastCGI error occured

Module  FastCgiModule
Notification    ExecuteRequestHandler
Handler PHP_via_FastCGI
Error Code  0x80070005

我运行了以下命令,通过强制运行 cgi 来测试连接:

"C:\Program Files (x86)\PHP\php-cgi.exe" <path to website>

这确实输出了 PHP/HTML 代码,而不是 500 错误。我相信问题出在 IIS 上。服务器在星期五正常运行,据我所知没有发生任何变化。重新启动服务器没有任何变化,仍然显示错误。

希望我将此信息提供给了正确的网站/论坛。有人知道我为什么会收到此错误吗?

编辑:添加了 500 错误和“发生未知的 FastCGI 错误”

答案1

500 错误可能是因为运行的用户C:\Program Files (x86)\PHP\php-cgi.exe对包含 PHP 文件的目录没有适当的权限。

  1. 检查服务管理器以查看哪个用户正在运行此进程。
  2. 检查 PHP 目录和文件的安全 ACL。
  3. 确保(1.)中的用户具有读取/执行和列出目录的权限,并将这些权限传播到所有文件。

答案2

我收到了相同的错误消息,发现问题在于缺少 dll,msvcr71.dll。我在Mysql下找到了这个dll的副本,并将其复制到

C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP5\目录,并且,以防万一到C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP5\etc目录。

答案3

控制面板 >> 所有控制面板项 >> 管理工具 >> Internet 信息服务 (IIS) 管理器 >>

在“连接”下选择“站点”,然后选择“默认网站”(全部在第一列),选择“处理程序映射”(第二列),双击,将打开一个处理程序映射列表,然后选择未运行的服务(例如通过其昵称 c:\php5\php-cgi.exe)并使其变为“继承”(作为“条目类型”)

应工作-

弗里基

相关内容