apache服务器器一般运行是相当稳定的,当你服务器弹出httpd.exe应用程序错误问题时,我们会在网上看到很多解决方法,我们查看apache\log\下的错误日志一般有这么一句 child process exited with status,大体的返回错误如下:
AH00418: Parent: Created child process 2112 AH00354: Child: Starting 250 worker threads. Parent: child process 2112 exited with status 3221225477 -- Restarting. Parent: Received shutdown signal -- Shutting down the server.
apache异常退出引起的,常见原因如下:
1,受到CC攻击或者流量高峰期负载过大
2,PHP程序死循环引起的异常
3,iis或其他环境引起的端口冲突导致进程退出
4,VC运行库异常引起的进程退出
5,防护软件不兼容引起的
6,某一时段内存占满引起的进程退出。
这种错误一般都是集成环境XAMpp,wamp等集成包后出现的问题,问题的排查的确复杂,网上的解决办法未必适合你,只能一个一个慢慢排查。下面汇总如下:
1、这种错误一般发生在Windows中,因为Apache的默认堆栈大小较小。它通常发生在处理分配大量堆栈的php代码时
到\apache\conf\extra寻找httpd-mpm.conf查找ThreadStackSize 修改它的大小88888
ThreadStackSize 88888 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxConnectionsPerChild 0
2、这种错误一般都是: php5与apache2.x环境报错
复制php5目录下的php5apache.dll和libmysql.dll两个dll文件到windows/system32目录下,然后重启server.
php5apache.dll只适用于apache 版本1的, PHP5压缩包里的php5apache2.dll只适用于apache2.0.*版本; 如果是2.2.*以上版本,换成php5apache2_2.dll即可
3、将php安装目录下libmysql.dll文件拷贝到windows/system32下
4、删除\apache\logs\下的httpd.pid
5、第三方软件造成的冲突或者考虑my.ini数据库配置缓存设置
6、仅仅参考apache的错误日志是不行的,必须参考我的电脑-管理-计算机管理-事件查看器-应用程序里面的错误记录,再进行排除。
7、记得修改重启apache
8、一切都不能保证的情况下,重新部署环境。