我从外部收到“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 文件的目录没有适当的权限。
- 检查服务管理器以查看哪个用户正在运行此进程。
- 检查 PHP 目录和文件的安全 ACL。
- 确保(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)并使其变为“继承”(作为“条目类型”)
应工作-
弗里基