Windows+APACHE服务经常故障怎么办

圆嘟嘟选择的主机搭配是Windows 2003 Server+Apache+PHP+Mysql,当网站初步上线测试后,我在主机运维方面遇到了很多问题,这里先说一个比较罕见,而且也让我头疼好几天的问题,就是APACHE在运行一段不定时的时间后,就自动停止了,Windows系统日志显示是:Apache2 服务因 1 (0x1) 服务性错误而停止。而APACHE的error日志里最后的内容如下:

[Thu Mar 21 01:08:09.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00358: Child: Process exiting because it reached MaxConnectionsPerChild. Signaling the parent to restart a new child process.

[Thu Mar 21 01:08:09.203125 2013] [mpm_winnt:notice] [pid 2992:tid 436] AH00424: Parent: Received restart signal -- Restarting the server.

[Thu Mar 21 01:08:11.000000 2013] [ssl:warn] [pid 2992:tid 436] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]

[Thu Mar 21 01:08:11.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00364: Child: All worker threads have exited.

别的内容似乎都正常,除了SSL的警告外,一开始是搞不清楚状况,以为是SSL配置有问题,就对SSL进行了配置,但配置完以后,是不提示“Session Cache is not configured”了,但故障依然,我又继续从APACHE的错误日志中寻找线索,这次我用到的关键字是“MaxConnectionsPerChild”,这个配置可能很多人也不知道是什么,这是APACHE2.4才改成这样的,原来叫MaxRequestsPerChild,意思是指子进程的最大连接数,当达到设置值以后,APACHE就会结束当前的子进程,释放内存,再开启新的子进程,这个设置是在httpd-mpm.conf里面的,因为是运行在Windows环境下,所以对就的是WinNT MPM,原来的设置是:

ThreadsPerChild 250

MaxConnectionsPerChild 10000

都说为了防止内存溢出,MaxConnectionsPerChild不要设成0,但可以考虑设成小的数值,于是我设成500,继续测试,但不管我改成多少,APACHE还是依然不定时就挂了,依照网上有关的方法我全试了个遍,终究没有解决这个问题,我都动了重置系统再来的念头了...

在解决这个问题的过程中,我发现系统运行的非常非常慢,打开任务管理器一看,内存居然占了3G多,才发现其实APACHE其实并没有结束掉子进程,内存一直占用着并没有得到翻译,我好像得到点启发了,看来这压根跟MaxConnectionsPerChild的设置没多大的联系,而是在达到子进程限定的线程数后,当APACHE尝试关闭当前子进程再重新开启新的子进程时发生了什么事情让它这么做失败了呢?我又打开了Windows的日志查看器,终于在应用程序日志里找到一条跟APACHE出错同时产生的日志,内容是“事件 ID ( 487 )的描述(在资源( Zend Optimizer+ )中)无法找到。”,依据这个,我继续在网上搜索有关这个错误日志的相关内容,但很可惜的是所有的解决办法我都试过了,依然无果,最后我就干脆把zend关了,具体做法是,打开php.ini,把以下两行注释掉,问题终于解决.....

[zend]

zend_extension="D:phpextZendOptimizer.dll"

这样APACHE终于可以运行正常了。

本文由圆嘟嘟:http://www.yuandudu.com原创提供,版权所有,转载请注明,谢谢!

圆嘟嘟选择的主机搭配是Windows 2003 Server+Apache+PHP+Mysql,当网站初步上线测试后,我在主机运维方面遇到了很多问题,这里先说一个比较罕见,而且也让我头疼好几天的问题,就是APACHE在运行一段不定时的时间后,就自动停止了,Windows系统日志显示是:Apache2 服务因 1 (0x1) 服务性错误而停止。而APACHE的error日志里最后的内容如下:

[Thu Mar 21 01:08:09.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00358: Child: Process exiting because it reached MaxConnectionsPerChild. Signaling the parent to restart a new child process.[Thu Mar 21 01:08:09.203125 2013] [mpm_winnt:notice] [pid 2992:tid 436] AH00424: Parent: Received restart signal -- Restarting the server.[Thu Mar 21 01:08:11.000000 2013] [ssl:warn] [pid 2992:tid 436] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache][Thu Mar 21 01:08:11.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00364: Child: All worker threads have exited.

别的内容似乎都正常,除了SSL的警告外,一开始是搞不清楚状况,以为是SSL配置有问题,就对SSL进行了配置,但配置完以后,是不提示“Session Cache is not configured”了,但故障依然,我又继续从APACHE的错误日志中寻找线索,这次我用到的关键字是“MaxConnectionsPerChild”,这个配置可能很多人也不知道是什么,这是APACHE2.4才改成这样的,原来叫MaxRequestsPerChild,意思是指子进程的最大连接数,当达到设置值以后,APACHE就会结束当前的子进程,释放内存,再开启新的子进程,这个设置是在httpd-mpm.conf里面的,因为是运行在Windows环境下,所以对就的是WinNT MPM,原来的设置是:

ThreadsPerChild 250

MaxConnectionsPerChild 10000

都说为了防止内存溢出,MaxConnectionsPerChild不要设成0,但可以考虑设成小的数值,于是我设成500,继续测试,但不管我改成多少,APACHE还是依然不定时就挂了,依照网上有关的方法我全试了个遍,终究没有解决这个问题,我都动了重置系统再来的念头了...

在解决这个问题的过程中,我发现系统运行的非常非常慢,打开任务管理器一看,内存居然占了3G多,才发现其实APACHE其实并没有结束掉子进程,内存一直占用着并没有得到翻译,我好像得到点启发了,看来这压根跟MaxConnectionsPerChild的设置没多大的联系,而是在达到子进程限定的线程数后,当APACHE尝试关闭当前子进程再重新开启新的子进程时发生了什么事情让它这么做失败了呢?我又打开了Windows的日志查看器,终于在应用程序日志里找到一条跟APACHE出错同时产生的日志,内容是“事件 ID ( 487 )的描述(在资源( Zend Optimizer+ )中)无法找到。”,依据这个,我继续在网上搜索有关这个错误日志的相关内容,但很可惜的是所有的解决办法我都试过了,依然无果,最后我就干脆把zend关了,具体做法是,打开php.ini,把以下两行注释掉,问题终于解决.....

[zend]zend_extension="D:phpextZendOptimizer.dll"

这样APACHE终于可以运行正常了。

(0)

相关推荐

  • windows手动安装apache服务的方法

    可以选择在安装Apache时自动将其安装为一个服务。如果选择"for all users",那么Apache将会被安装为服务。 如果选择了"only for the Current User",可以在 ...

  • windows下如何安装与配置Apache服务

    在PHP网站的服务器搭建时,Apache服务是其必备的构架,为了使更多的新手能够快速的进行其安装与配置成功,在此与大家一起分享 操作方法 01 运行下载好的"apache_2.0.55-wi ...

  • Windows Vista如何优化故障

    常见的Windows Vista优化后故障 许多用户常常在抱怨优化完Vista系统以后会出现故障,这些故障导致整个系统处于瘫痪状态,下午是编辑为读者们整理的一些关于常见的vista系统优化后的故障,希 ...

  • Windows无法启动windows firewall服务 错误1079

    操作方法 01 解决win8难题: 在使用过程中,我们难免会因为优化软件和系统感染流氓软件而导致故障,出现以下状况: Windows无法启动windows firewall服务(位于 本地计算机 上) ...

  • 提示您必须安装带有更新版本windows installer服务的Windows Service Pack问题解决办

    无法通过windows installer服务安装此安装程序包。您必须安装带有更新版本windows installer服务的Windows Service Pack。 出现这个问题不让安装程序,可以 ...

  • APMServ Apache启动失败故障排除方法

    相信现在有很多黑友在用APMServ为本地搭建Web服务器,用来测试一些整站系统等等。在安装的时候有时候会遇到Apache服务启动失败的问题。我以个人的经验总结了一下,现在分享给大家,希望对各位有所帮 ...

  • 解决安装QQ时提示无法访问Windows Installer服务的问题

    安装QQ的时候提示无法访问Windows Installer 服务。没有正确安装Windows Installer时可能发生这种情况。请与技术支持人员联系以获得帮助。 依次打开“开始菜单——所有程序— ...

  • Win7如何关闭卸载Windows Search服务功能

    默认情况下,Windows7附带的一些程序和功能处于打开状态,其中包括Windows Search。此功能带来了快捷方便强大的搜索功能,但可能有人不需要此功能,或者很少用到此功能,或许还有人认为其在后 ...

  • windows音频服务未运行没声音无法启动windows audio服务

    问:你好,我电脑出现了音频服务未运行,而且没声音,在控制版面---管理工具----服务---windows audio里无法启动这个选项,提示windows无法启动windows audio服务 (位 ...