APACHE崩溃:父级:subprocess退出,状态为3221225477 – 重新启动

我的下面的设置是Xampp 1.7.7,这里是所有包中的信息: – Apache / 2.2.21(Win32)mod_ssl / 2.2.21 OpenSSL / 1.0.0e PHP / 5.3.8 mod_perl / 2.0.4 Perl / v5.10.1

我在Windows XP SP3 32位操作系统上运行服务器,4个内存,四核的演出。

我在我的apache错误日志文件中的问题是:

[Tue Apr 24 15:55:55 2012] [notice] Parent: child process exited with status 3221225477 -- Restarting. [Tue Apr 24 15:55:57 2012] [notice] Digest: generating secret for digest authentication ... [Tue Apr 24 15:55:57 2012] [notice] Digest: done [Tue Apr 24 15:55:59 2012] [notice] Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations [Tue Apr 24 15:55:59 2012] [notice] Server built: Sep 10 2011 11:34:11 [Tue Apr 24 15:55:59 2012] [notice] Parent: Created child process 776 [Tue Apr 24 15:56:00 2012] [notice] Disabled use of AcceptEx() WinSock2 API [Tue Apr 24 15:56:01 2012] [notice] Digest: generating secret for digest authentication ... [Tue Apr 24 15:56:01 2012] [notice] Digest: done [Tue Apr 24 15:56:02 2012] [notice] Child 776: Child process is running [Tue Apr 24 15:56:02 2012] [notice] Child 776: Acquired the start mutex. [Tue Apr 24 15:56:02 2012] [notice] Child 776: Starting 350 worker threads. [Tue Apr 24 15:56:02 2012] [notice] Child 776: Listening on port 443. [Tue Apr 24 15:56:02 2012] [notice] Child 776: Listening on port 80. 

这似乎偶尔会发生,我甚至尝试在apache conf文件中使用Win32DisableEx,EnableIMAP Off和EnableSendFile Off。 我也尝试将libmysql.dll文件无效地复制到system32和apache / bin文件夹中。

如果有人知道其他原因,这个错误的subprocess退出,并导致Apache崩溃,信息将不胜感激。 如果需要任何额外的日志文件,请让我知道。

Tks,Shane。

错误代码3221225477是十六进制的0xC0000005 ,在Windows上是:

 #define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L) 

访问冲突是Windows版本的“分段错误”,简单地说就是说程序试图访问未分配的内存。 这可能发生在很多不同的原因,但大多数(如果不是总是)是程序中的错误。

现在,我猜你的情况是,在PHP或PHP的扩展或Perl或某些Perl应用程序中有一个错误。 Apache本身通常非常稳定,但是如果使用一些不寻常的扩展,这也可能是原因。

我会建议更新所有的配置到最新版本。 如果您想确定问题的根源,请在调试器(如Visual Studio或OllyDbg)中运行Apache。 当异常(访问冲突)发生时,它会停止执行(而不是重新启动),你会看到它在哪个模块中。

如果存在与错误具有相同时间戳的可疑请求,请查看访问日志。 但是在请求被保存到日志文件之前,可能会发生崩溃。