IIS 7.5 PHP失败“FastCGI进程意外退出”

时间:2012-08-16 17:06:03

标签: php cgi iis-7.5 fastcgi

我一直试图让PHP使用IIS 7.5并且遇到了一些障碍。每当我尝试加载页面时,我都会收到以下错误:

“HTTP错误500.0 - 内部服务器错误 C:\ Program Files \ PHP \ php.exe - FastCGI进程意外退出“

模块FastCgiModule

通知ExecuteRequestHandler

处理程序PHP_via_FastCGI

错误代码0x00000000

请求的URL * http:// localhost:80 / index.php

物理路径C:\ inetpub \ wwwroot \ index.php

登录方法匿名

登录用户匿名

请求跟踪失败日志目录C:\ inetpub \ logs \ FailedReqLogFiles

我已经根据需要修改了PHP.ini文件以用于IIS,并且还将其切换到详细模式。 C:\ inetpub \ logs \ FailedReqLogs中没有任何日志域,并且在生成的其他日志文件中没有与此错误相关。

我已经尝试过我在这里和其他地方找到的其他修复程序,但到目前为止没有任何成功。

在某些细节上,这些是: 重新检查PHP.ini 设置fastCGI以在IIS中使用PHP(配置它以加载php.exe) 尝试使用WinCache作为执行方法。

9 个答案:

答案 0 :(得分:49)

当我将PHP 5.4.14升级到5.5.3(32位)时遇到了这个问题。

要解决此问题,我必须安装Visual C++ Redistributable for Visual Studio 2012 Update 3

我发现在升级后我的网页不再加载时,我从控制台运行php --version需要这个DLL。然后,我发现我需要MSVCR110.dll,它附带来自MS的32位VS可再发行更新。由于我在Window Update中关闭了可选更新,因此我没有自动获取它。

它们也有不同的风格(32位,64位和ARM)32位对我有用。

答案 1 :(得分:9)

答案 2 :(得分:4)

似乎你的php中有一些dll扩展无法正常工作并强制关闭CGI。尝试评论php.ini文件中的每个扩展,看看错误是否存在。

[编辑1]

经过一番努力,我发现IIS是非线程安全的Web服务器,你想在php for IIS中使用的所有扩展都应该使用nts lib进行编译。如果扩展使用线程安全库编译并添加到IIS,IIS将无法启动。在这种情况下你的线程安全扩展(我猜在apache中使用),不应该作为IIS中的扩展添加

答案 3 :(得分:3)

这个页面你试图做什么密集吗?

之前我遇到过此问题,错误消息具有误导性。

您可能想尝试增加该特定页面的内存限制。首先找出该页面的峰值内存使用情况:

echo memory_get_peak_usage(true);

然后适当设置内存限制:

ini_set("memory_limit","1024M");

希望有所帮助!

答案 4 :(得分:1)

我知道它是一个旧线程,但有人可能会节省一些头脑。

在php.ini中,更改

; Whether or not to enable the dl() function.  The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
; http://php.net/enable-dl
enable_dl = Off

; Whether or not to enable the dl() function.  The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
; http://php.net/enable-dl
;enable_dl = Off

让enable_dl = Off不起作用,注释掉整行。

答案 5 :(得分:1)

我在配置PHP 5.4.17(32-bit)时出现此问题。

要解决此问题,我必须为Visual C++ Redistributable安装Visual Studio 2012 Update 4,并且在安装此更新后工作正常。

答案 6 :(得分:0)

如果你有两个应用程序(你的应用程序,phpmyadmin)只是禁用APC扩展 希望能解决这个问题 它和我一起工作

如果不是只安装Microsoft Visual C ++ 86和64

答案 7 :(得分:0)

我遇到了同样的问题,我通过安装Visual C ++的 32 位来解决这个问题,可以为Visual Studio 2012重新发布.64位对我来说不起作用。

答案 8 :(得分:0)

正如在上面的答案中正确提到的,它与" Visual C ++ Redistributable"没有安装或未正确安装。

取决于我在此问题上的专业知识。

1-首先要注意,每个PHP版本都依赖于特定的Visual C ++ Redistributable版本(11,12,14,..)

所以首先用PHP站点左侧的注释检查你的PHP版本:     
PHP Download page  搜索"我选择哪个版本?"然后看看你需要什么版本的VC ++。

2-您必须同时下载VC 32和64。并检查你的电脑是否已经安装了它。所以它们都是Unistall(仅适用于同一版本)。 然后先安装32和64。 (除非它要求,否则无需重启)。

3-完成php安装iis,apache或....的其他步骤。

我希望它可以帮到你。