Apache 子进程退出,状态为 255


Apache child process exited with status 255

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

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

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

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

这里有一些更多信息:

视窗事件日志:

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: 

Apache Log:

[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崩溃?..

提前感谢!

就我而言,日志中没有更多内容。只:

 Parent: child process XXXX exited with status 255 -- Restarting

重定向代码中出现问题:

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

此代码停止 apache 服务并启动新进程。但不是所有时间...有时工作正常...有时会崩溃:(

正确的代码是:

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

有关以下内容的更多信息:PHP:利用 exit();或死亡();在标题("位置:")之后;

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

我认为网络上的这种child process XYZ exited with status 255有几个不同的原因。它们中的大多数都与PHP相关。

我刚刚在 Windows 上遇到了同样的崩溃,Apache 2.4.18 和 PHP 5.6.16,当从 http://parsedown.org 通过 Markdown 解析器传递用户的帖子消息时。通过在消息中围绕 SQL 源代码来修复它,该消息具有标识符引用的反引号,以及 Markdown 期望的源代码的三个反引号。没有深入研究 Parsedown.php找出它到底发生在哪里,但它一定是这些反引号的东西。