新安装的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,但还是没有解决问题。有人有其他的想法吗? 另外,我也检查了内存限制。有一个网站建议增加内存限制,但没有任何改变。 问题:在更改PHP配置后,是否需要重新启动Windows才能生效?

哪个版本的PHP? - Kev
当我使用Microsoft安装程序安装PHP 5.5时,它同时也安装了5.3版本。 - alexander7567
4个回答


1你是正确的。我已经安装了x64版本,因为这是一台64位的机器。安装了x86版本后,它立即开始工作(无需重新启动)。谢谢!我花了几个小时来琢磨这个问题! - alexander7567
太棒了!立刻为我解决了问题。+1 - Will Appleby
2谢谢!PHP 5.6实例需要VC++ 11(VS 2012)运行时。 - dynamiclynk
谢谢!最开始我没注意到x86的部分,但是在彻底失败后,我看到了自己错过的地方,现在一切都正常运行了。 - Alexandre Danault
6对于任何遇到PHP 5.6问题的人来说,你需要下载Visual C++ Redistributable for Visual Studio 2012 Update 4 (vcredist_x86.exe)x86 版本。你可以从以下页面获取:https://www.microsoft.com/en-us/download/details.aspx?id=30679 - Derek Foulk
@kev 你真是个救命稻草。立刻修好了。我特意创建了一个账户来留言感谢你! - Weipeng
@pongba - 很高兴能够帮到你 :) - Kev
太棒了!救了我的一天! - Anass
天啊...2天...我差点疯了,老兄...原来是64位的问题。一旦我下载了x86版本,就好用了...谢谢! - curiousBoy
对于 PHP 7.2.x 版本,请使用 VC++ 2015 并选择正确的位数版本(x64、x86,取决于 PHP 的位数版本)。 - Martin Braun
虽然已经过去了4年,但64位版本对我来说与64位PHP一起使用是有效的,以防万一这对任何人有所帮助。 - mindmischief
@mindmischief - 谢谢你提供的信息。四年过去了,我很惊讶那些链接仍然有效 :) - Kev
@derekmx271 是的,没错,php 5.6 需要 VC++ 2012 x86。我已经安装了 x64 版本,但没有安装 x86 版本。唉~~~,整个早上都在努力解决这个问题。 - mjb

我之前也遇到了类似的问题,结果发现我没有安装CGI服务器角色(在IIS -> 应用程序开发下)。

这条信息有多相似? - Deer Hunter
我安装了VC++ 11运行库,但是为了使其正常工作,我还必须安装CGI支持。在Windows 8.1和IIS 8.5上,可以在“打开或关闭Windows功能”中找到它,路径为“Internet信息服务 > 应用程序开发功能 > CGI”。 - jxmallett

我在一个2012 R2服务器上的PHP 7.0.3遇到了同样的错误,该服务器使用IIS 8.5。 解决方案是安装:Visual Studio 2015 32位版的Visual C++ Redistributable。 安装后一切正常运行。

安装了Visual Studio 2015 32位版的Visual C++ Redistributable之后,仍然出现500错误。 从Microsoft Sysinternals运行了procmon,并在请求我的PHP网页时发现了以下问题。
w3wp.exe C:\PHP\php-cgi.exe "ACCESS DENIED"
w3wp.exe 是在 IIS 下运行的应用程序池。 将特定的应用程序池用户赋予对 c:\php 的读取/执行权限解决了这个问题。

  • 相关问题