经过大量的搜索,尝试,修复,等待和哭泣之后,在我放弃之前,我想抓住这个错误的最后一次机会......
我们正在 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崩溃的原因?..
提前致谢!
答案 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以找出它究竟发生在哪里,但它必须是这些反叛的东西。