尝试在 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++ 可再发行 2012 更新 4。有人有其他想法吗?
编辑:我检查的另一件事是内存限制。一个站点建议我的内存限制需要提高。没变。
编辑:问题:是否必须重新启动 Windows 才能使 PHP 更改生效?
很有可能您正在运行的 PHP 版本缺少正确的 VC++ 运行时。
如果您运行的是 PHP 5.5.x,则需要确保安装了 VC++11 运行时:
确保下载并安装 x86 版本 (
vcredist_x86.exe
),Windows 上的 PHP 还不是 64 位。如果您运行的是 PHP 5.4.x,那么您需要安装 VC++9 运行时:
我被类似的消息所吸引,结果发现我没有安装 CGI 服务器角色(在 IIS -> 应用程序开发下)。
我在带有 IIS 8.5 的 2012 R2 服务器上的 PHP 7.0.3 遇到了同样的错误。
解决办法是安装:Visual C++ Redistributable for Visual Studio 2015 32bits
安装后一切正常。
安装 Visual C++ Redistributable for Visual Studio 2015 32bits 后仍然出现 500 错误。
从 microsoft sysinternals 运行 procmon 并在请求我的 php 网页时找到
w3wp.exe 是在 IIS 下运行的应用程序池
授予特定应用程序池用户对 c:\php 的 READ/EXECUTE 权限可解决此问题。