我一直试图让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作为执行方法。
答案 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或....的其他步骤。
我希望它可以帮到你。