圆嘟嘟选择的主机搭配是Windows Server+Apache+PHP+Mysql当网站初步上线测试后我在主机运维方面遇到了很多问题这里先说一个比较罕见而且也让我头疼好几天的问题就是APACHE在运行一段不定时的时间后就自动停止了Windows系统日志显示是Apache 服务因 (x) 服务性错误而停止而APACHE的error日志里最后的内容如下
[Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Child: Process exiting because it reached MaxConnectionsPerChild Signaling the parent to restart a new child process
[Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Parent: Received restart signal Restarting the server
[Thu Mar :: ] [ssl:warn] [pid :tid ] AH: Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Child: All worker threads have exited
别的内容似乎都正常除了SSL的警告外一开始是搞不清楚状况以为是SSL配置有问题就对SSL进行了配置但配置完以后是不提示“Session Cache is not configured”了但故障依然我又继续从APACHE的错误日志中寻找线索这次我用到的关键字是“MaxConnectionsPerChild”这个配置可能很多人也不知道是什么这是APACHE才改成这样的原来叫MaxRequestsPerChild意思是指子进程的最大连接数当达到设置值以后APACHE就会结束当前的子进程释放内存再开启新的子进程这个设置是在里面的因为是运行在Windows环境下所以对就的是WinNT MPM原来的设置是
ThreadsPerChild
MaxConnectionsPerChild
都说为了防止内存溢出MaxConnectionsPerChild不要设成但可以考虑设成小的数值于是我设成继续测试但不管我改成多少APACHE还是依然不定时就挂了依照网上有关的方法我全试了个遍终究没有解决这个问题我都动了重置系统再来的念头了
在解决这个问题的过程中我发现系统运行的非常非常慢打开任务管理器一看内存居然占了G多才发现其实APACHE其实并没有结束掉子进程内存一直占用着并没有得到翻译我好像得到点启发了看来这压根跟MaxConnectionsPerChild的设置没多大的联系而是在达到子进程限定的线程数后当APACHE尝试关闭当前子进程再重新开启新的子进程时发生了什么事情让它这么做失败了呢?我又打开了Windows的日志查看器终于在应用程序日志里找到一条跟APACHE出错同时产生的日志内容是“事件 ID ( )的描述(在资源( Zend Optimizer+ )中)无法找到”依据这个我继续在网上搜索有关这个错误日志的相关内容但很可惜的是所有的解决办法我都试过了依然无果最后我就干脆把zend关了具体做法是打开phpini把以下两行注释掉问题终于解决
[zend]
zend_extension="D:phpextZendOptimizerdll"
这样APACHE终于可以运行正常了
圆嘟嘟选择的主机搭配是Windows Server+Apache+PHP+Mysql当网站初步上线测试后我在主机运维方面遇到了很多问题这里先说一个比较罕见而且也让我头疼好几天的问题就是APACHE在运行一段不定时的时间后就自动停止了Windows系统日志显示是Apache 服务因 (x) 服务性错误而停止而APACHE的error日志里最后的内容如下
[Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Child: Process exiting because it reached MaxConnectionsPerChild Signaling the parent to restart a new child process[Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Parent: Received restart signal Restarting the server[Thu Mar :: ] [ssl:warn] [pid :tid ] AH: Init: Session Cache is not configured [hint: SSLSessionCache][Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Child: All worker threads have exited
别的内容似乎都正常除了SSL的警告外一开始是搞不清楚状况以为是SSL配置有问题就对SSL进行了配置但配置完以后是不提示“Session Cache is not configured”了但故障依然我又继续从APACHE的错误日志中寻找线索这次我用到的关键字是“MaxConnectionsPerChild”这个配置可能很多人也不知道是什么这是APACHE才改成这样的原来叫MaxRequestsPerChild意思是指子进程的最大连接数当达到设置值以后APACHE就会结束当前的子进程释放内存再开启新的子进程这个设置是在里面的因为是运行在Windows环境下所以对就的是WinNT MPM原来的设置是
ThreadsPerChild
MaxConnectionsPerChild
都说为了防止内存溢出MaxConnectionsPerChild不要设成但可以考虑设成小的数值于是我设成继续测试但不管我改成多少APACHE还是依然不定时就挂了依照网上有关的方法我全试了个遍终究没有解决这个问题我都动了重置系统再来的念头了
在解决这个问题的过程中我发现系统运行的非常非常慢打开任务管理器一看内存居然占了G多才发现其实APACHE其实并没有结束掉子进程内存一直占用着并没有得到翻译我好像得到点启发了看来这压根跟MaxConnectionsPerChild的设置没多大的联系而是在达到子进程限定的线程数后当APACHE尝试关闭当前子进程再重新开启新的子进程时发生了什么事情让它这么做失败了呢?我又打开了Windows的日志查看器终于在应用程序日志里找到一条跟APACHE出错同时产生的日志内容是“事件 ID ( )的描述(在资源( Zend Optimizer+ )中)无法找到”依据这个我继续在网上搜索有关这个错误日志的相关内容但很可惜的是所有的解决办法我都试过了依然无果最后我就干脆把zend关了具体做法是打开phpini把以下两行注释掉问题终于解决
[zend]zend_extension="D:phpextZendOptimizerdll"
这样APACHE终于可以运行正常了