最近开始接触apache和php,以前对这两个东西的理解就是做网站用了,其它的什么也不知道了。
这段时间我参与的日志系统出问题了,httpd.exe动不动就挂掉,或cpu 100%,本来这不属于我的工作范围,但由于最近闲的慌,所以到最后这个任务安排给我了。
写这篇文章的时候,我并没有完全的弄明白问题存在的原因,只是初步绕过了部分问题。
刚接到任务的时候,由于项目时间急,所以做了一个中间方案,另一个程序不断的去监控httpd.exe,如果发现死掉了,或者无响应,直接重新启动这个服务。
可这并不是一个好的办法,所以从这周的周一开始,我便大量的查询相关的资料,周一、周二看了一下与php相关的东西顺便也了解了一下ZF框架,周三整整一天什么事也没有做出来。周四,我开始从官网下载新的apache与php皮去看官方的英文介绍。原来apache是在vc6基础上编译的,而我下载的php在vc11基础上编译,上面明明白白写着,如果要用这个php就去另一个网站下载apache因为官网的apache都是在vc6基础上编译的,尼玛,时间就这样浪费了,重新下载了php后,环境可以顺利的运行了。
接下来我开始移植程序,尼玛各种配置,一个不对,程序就运行不起来。最后直接用对比工具,看到不同的就同步。
今天一早来就开始测程序的稳定性了,这一个星期什么成果也没有,很心虚。遇到的问题是Apache总是意外退出,然后重启,表现在页面上的,就是不断的弹出服务器无响应。查看apache的错误日志,也没有看出来啥,提示总是一样的“child process exited with status 255 -- restarting ”
网上找尽各种办法没用的,最后查看windows截取的日志事件,看到里面“错误模块名称:php5ts.dll”然后网上查了一下,果然有人也遇到过这个问题,大制上就是说:php版本需要和这个dll的版本一样,要不然就可能会出现问题,查了一下,我php目录下的这个dll版本是没有问题的呀,再看日志事件报的错,版本并不是我php目录下面的这个版本。突然想起来,前段时间试用过的各种办法,有一次把之前版本的dll复制到了system32下面一份,马上去删,果然这家伙不让删,报正在调用。停掉apache后,成功删掉,之后再起apache到目前一直运行正常。啃!!!