Apache子进程退出,状态为255

时间:2015-06-18 13:14:30

标签: php mysql windows apache

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

我们正在 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会崩溃。

这里有更多信息:

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: 

Apache日志:

[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的?但没有错误指向这个或我在错误的地方找错?
  • 的Windows?如何理解?
  • PHP / Apache配置?那么,还有什么......以及为什么?
  • 外星人...

主要问题是PHP崩溃的原因?..

提前致谢!

3 个答案:

答案 0 :(得分:2)

就我而言,日志中没有其他内容。 只有:

 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: Utilizing exit(); or die(); after header("Location: ");

答案 1 :(得分:1)

有一个已知的错误:每当你包含的文件的文件大小为4096或更多时,php模块和apache将停止工作。那不是开玩笑!

答案 2 :(得分:0)

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

我刚刚在Windows上遇到了同样的崩溃,Apache 2.4.18与PHP 5.6.16,当传递用户时#39;通过http://parsedown.org的Markdown解析器发布消息。通过在消息中包含用于标识符引用的反引号的SQL源代码修复它,Markdown期望源代码提供三个反引号。没有深入研究Parsedown.php以找出它究竟发生在哪里,但它必须是这些反叛的东西。