全新安装 IIS 和 PHP 时出现 500 错误

全新安装 IIS 和 PHP 时出现 500 错误

当我尝试在 Windows Server 2012 和 IIS 上运行 PHP 文件时,我不断收到 500 错误。我找不到任何详细日志或任何内容。但是,当我转到 IIS 的 PHP 管理器并单击检查配置时,我收到以下错误:

Detailed Error Information:
Module    FastCgiModule 
Notification    ExecuteRequestHandler 
Handler    PHP55_via_FastCGI 
Error Code    0xc0000135 
Requested URL    http://domain.com:80/brkld3ip.php 
Physical Path    drive:\sites\domain.com\brkld3ip.php 
Logon Method    Anonymous 
Logon User    Anonymous 

我在全新安装的 Windows Server 上使用 Microsoft Web Platform Installer 5.0 安装了 PHP。

我是 Linux 的 IIS 新手。所以我对 IIS 的“了解”还不够,不知道发生了什么。我尝试按照几个网站的建议更新 C++ redistributable 2012 update 4。有人有其他想法吗?

编辑:我检查的另一件事是内存限制。一个网站建议我需要提高内存限制。没有变化。

编辑:问题:是否必须重新启动 Windows 才能使 PHP 更改生效?

答案1

您很有可能缺少所运行的 PHP 版本的正确 VC++ 运行时。

如果您正在运行 PHP 5.5.x,则需要确保已安装 VC++11 运行时:

http://www.microsoft.com/en-us/download/details.aspx?id=30679

确保您下载并安装了 x86 版本(vcredist_x86.exe),Windows 上的 PHP 尚未是 64 位。

如果您正在运行 PHP 5.4.x,那么您需要安装 VC++9 运行时:

http://www.microsoft.com/en-us/download/details.aspx?id=5582

答案2

我被类似的消息困扰了,结果发现我没有安装 CGI 服务器角色(在 IIS -> 应用程序开发下)。

答案3

我在安装了 IIS 8.5 的 2012 R2 服务器上使用 PHP 7.0.3 时遇到了同样的错误。

解决方案是安装:Visual C++ Redistributable for Visual Studio 2015 32bits

安装后一切都正常运行。

答案4

安装 Visual Studio 2015 32 位版的 Visual C++ Redistributable 后仍然出现 500 错误。

从微软 sysinternals 运行 procmon,在请求我的 php 网页时发现

w3wp.exe C:\PHP\php-cgi.exe "ACCESS DENIED"

w3wp.exe 是在 IIS 下运行的应用程序池

授予特定应用程序池用户对 c:\php 的读取/执行权限解决了该问题。

相关内容