Php Apache子进程已退出,状态为255

Php Apache子进程已退出,状态为255,php,mysql,windows,apache,Php,Mysql,Windows,Apache,在经历了大量的搜索、尝试、修复、等待和哭泣之后,在我放弃之前,我想在这里为这个bug抓住最后的机会 我们在Microsoft Windows Server 2012、Apache/2.4.6(Win64)OpenSSL/1.0.1e PHP/5.5.1上运行 Apache会定期崩溃并重新启动,24小时内至少5-10次。大多是两次。因为PHP崩溃了 整个应用程序都是PHP,因此将PHP配置为FastCGI并不能解决问题:Apache不会崩溃,但PHP会崩溃 这里有更多信息: Windows事件日志

在经历了大量的搜索、尝试、修复、等待和哭泣之后,在我放弃之前,我想在这里为这个bug抓住最后的机会

我们在Microsoft Windows Server 2012、Apache/2.4.6(Win64)OpenSSL/1.0.1e PHP/5.5.1上运行

Apache会定期崩溃并重新启动,24小时内至少5-10次。大多是两次。因为PHP崩溃了

整个应用程序都是PHP,因此将PHP配置为FastCGI并不能解决问题:Apache不会崩溃,但PHP会崩溃

这里有更多信息:

Windows事件日志:

Faulting application name: httpd.exe, version: 2.4.6.0, time stamp: 0x51e441d6
Faulting module name: php5ts.dll, version: 5.5.1.0, time stamp: 0x51e849b0
Exception code: 0xc0000005
Fault offset: 0x00000000000572d8
Faulting process id: 0xac0
Faulting application start time: 0x01d0a96634f3d129
Faulting application path: C:\Apache24\bin\httpd.exe
Faulting module path: C:\PHP\php5ts.dll
Report Id: 06409cc4-1568-11e5-93ff-d43d7edb03a9
Faulting package full name:
Faulting package-relative application ID: 
[Thu Jun 18 06:13:44.284810 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00428: Parent: child process 2752 exited with status 255 -- Restarting.
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00455: Apache/2.4.6 (Win64) OpenSSL/1.0.1e PHP/5.5.1 configured -- resuming normal operations
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00456: Apache Lounge VC11 Server built: Jul 15 2013 20:45:22
[Thu Jun 18 06:13:44.487977 2015] [core:notice] [pid 2736:tid 392] AH00094: Command line: 'c:\\Apache24\\bin\\httpd.exe -d C:/Apache24'
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00418: Parent: Created child process 4408
Apache日志:

Faulting application name: httpd.exe, version: 2.4.6.0, time stamp: 0x51e441d6
Faulting module name: php5ts.dll, version: 5.5.1.0, time stamp: 0x51e849b0
Exception code: 0xc0000005
Fault offset: 0x00000000000572d8
Faulting process id: 0xac0
Faulting application start time: 0x01d0a96634f3d129
Faulting application path: C:\Apache24\bin\httpd.exe
Faulting module path: C:\PHP\php5ts.dll
Report Id: 06409cc4-1568-11e5-93ff-d43d7edb03a9
Faulting package full name:
Faulting package-relative application ID: 
[Thu Jun 18 06:13:44.284810 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00428: Parent: child process 2752 exited with status 255 -- Restarting.
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00455: Apache/2.4.6 (Win64) OpenSSL/1.0.1e PHP/5.5.1 configured -- resuming normal operations
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00456: Apache Lounge VC11 Server built: Jul 15 2013 20:45:22
[Thu Jun 18 06:13:44.487977 2015] [core:notice] [pid 2736:tid 392] AH00094: Command line: 'c:\\Apache24\\bin\\httpd.exe -d C:/Apache24'
[Thu Jun 18 06:13:44.487977 2015] [mpm_winnt:notice] [pid 2736:tid 392] AH00418: Parent: Created child process 4408
  • 在PHP日志中,崩溃前没有特殊记录,也没有模式
  • 同时,并发连接也不会影响问题——即使我们只有很少的用户,这种情况也会发生
  • MySQL?但是没有错误指向这个或者我看错了地方
  • 窗户?如何计算
  • PHP/Apache配置?那么,还有什么。。为什么
  • 外星人
主要的问题是为什么PHP会崩溃


提前谢谢

有一个已知的bug:只要包含的文件大小为4096或更大,php模块和apache就会停止工作。那不是玩笑

我认为有几个不同的原因导致该
子进程XYZ在网络上退出,状态为255
。其中大多数与PHP相关


我刚刚在Windows、Apache2.4.18和PHP5.6.16上遇到了同样的崩溃,当时通过Markdown解析器从中传递用户的post消息。通过在消息中围绕SQL源代码修复了此问题,该消息中的标识符引号有倒钩,源代码预期有三个倒钩。没有深入到Parsedown.php中去找出它到底发生在哪里,但它一定是有这些回执的东西。

在我的例子中,日志中没有更多内容。 仅:

重定向代码中存在问题:

<?php
    header('HTTP/1.1 304 Not Modified');
    exit();
?>

此代码停止apache服务并启动新进程。 但不是所有时候。。。有时工作很好。。。有时崩溃:(

正确的代码是:

<?php
    header('HTTP/1.1 304 Not Modified');
    die();
?>

更多关于:

我也遇到了同样的问题。但是,运行PHP 5.6没有问题。我怀疑PHP上的apache模块有问题。(因为apache 2.4较新,有许多更改可能会导致类似情况)示例:您有一个文件大小为53248字节的.php文件。当您包含或使用此文件时,apache fill crash!53248/4096=13-是4096的倍数。这是PHP5.3.10的一个错误,可能更早和更高版本。5.4和更高版本不再有此错误(据我所知)。我们使用的是PHP5.5,所以情况不会是这样?