apache服务崩溃捉虫记

来源:互联网 发布:方立勋java web 编辑:程序博客网 时间:2024/05/16 10:58

公元2010年8月31日15点10分54秒,我的Apache服务罢工了。

哥很郁闷……

 

当时哥正埋头测试网页,没有任何征兆,网页就不解析了,然后写着大大的 forbidden字样,我当时第一反应就是权限,把权限设置成777,可转头就纠结了,心想我又不是linux,哪来的权限777 啊,二来我又没有装IIS!?!?

然后尝试重启Apache服务,这下彻底傻眼了,服务一停就再也启动不开了,Apache浩浩荡荡的带领所有网页举着牌子罢工了!

 

 

然后,我开始彻底的憎恨 Zend Studio,因为就是安装了它之后服务崩溃的,心想,不会是它改了啥配置,导致Apache们罢工的吧!!

一不做二不休,开始百度一样,有问题,百度一下。

 

第一次尝试:

捉虫地点:windows系统

参考解决案例:重启

 

最最简单的解决方案,各种简单小毛病,突发状况,重启屡试不爽啊,结果这次还真“不爽”了,无效!

 

第二次尝试:

捉虫地点:httpd.conf文件

参考解决案例:加载的dll文件错误

 

人家高手是这么说的:这个问题我测试了好长时间,终于发现问题所在,就是由于apache版本的不同,

LoadModule php5_module modules/php5apache2.dll

这段代码的配置略有细微处的不同,错误就在这段代码上,应该把
这一句中的php5apache2.dll修改成php5apache2_2.dll,

因为你使用的apache是2.2版本的,然后加上绝对路径名,例如:

LoadModule php5_module "c:/php/php5apache2_2.dll"

我睁大眼睛好好看了下,我就是这么写的啊,惆怅了半天,嗯,看来事出另有原因,虫不在这!

 

第三次尝试:

捉虫地点:本机端口

参考解决案例:80端口被占用

 

打开cmd 窗口,输入“netstat -ano”,查看了所有端口情况,一开始还心想,刚刚开启了下迅雷,下载zend studio的汉化文件,(恨,又是zend studio)不会是被迅雷占用了端口吧,可是又想Apache服务是一整天都开着的呀,纠结,结果查看端口情况消除了我的顾虑,80端口无人侵占!

 

 

第四次尝试:

捉虫地点:本机网络

参考解决案例:winsock的修复

 

可能的原因是服务运行久了,有些缓存垃圾啥的,同样还是在cmd命令行里输入:netsh winsock reset
一会儿cmd提示重启,不理会(因为重启没有必要的帮助),不过,还是不行。

 

第五次尝试:

捉虫地点:命令行启动

参考解决案例:命令行启动httpd服务

 

其实可以用命令行模式启动apache,并带上参数,apache会提示你哪句有误,然后就可以针对性的解决!

很好,打开cmd,输入命令: httpd.exe -w -n "Apache2" -k start

报错,提示没有“Apache2”这个服务名,打开本机服务列表,找到Apache服务,一看,原来名字是“ Apache2.2”,

OK,重试:httpd.exe -w -n "Apache2.2" -k start

报错,没有权限,哭。。。

因为我是win7系统,在它健壮有力的安全保卫措施下,我不得不深入cmd的老巢,也就是“C:/windows/system32”,然后找到cmd.exe右击管理员身份运行,然后输入上面的命令,

报错。。。

 

虽然又是报错,不过这次是多么的有用啊,因为它提示我是在 httd.conf 这个配置文件的 179 行出了问题!

然后,立马找了带有显示行号功能的 notepad2,找到第179行,豁然开朗了!

 

 

原来,事情是这样子的,我今天尝试用的zend studio,以前都是用Eclipse for php,为了防止冲突,把它的 workspace 路径移到了另一个地方,然后把根路径改了名字,以前叫“F:/ webpro/ htdocs”,现在叫 “F:/ web/ htdocs”,(没办法,这就叫手贱,就像无聊的IT工作者把文件从c盘移到D盘,然后再移到E盘,某天再移到F盘,过了几天又移回C盘一样,手贱!不过,有人不满了,这叫ITer独有的享受生活方式,好吧!)改回来,(注意,吸取了教训,搜一下该配置表上所有路径的相关的都改过来)一切OK了!

 

TIPS,如果各位没有notepad2 这样的显示行号软件,完全可以用系统自带的记事本,然后“查看”,勾选“状态栏”,只要光标移动,状态栏就会显示行号,列号了。很实用,注意,要显示状态栏,必须去掉 自动换行功能!

 

第六次尝试:

总结 

其实总结以上各个过程,其实,我们完全可以通过翻看 Apache自带的错误日志,就可以解决问题,在安装目录下的logs文件夹下有个error.log 的文件,记录了整个过程!

 

 

捉到了虫,我使劲的踩!我踩!我踩!我踩!我踩!我踩!我踩!我踩踩踩!

不过回忆一下,虫子不正是我自己放进来的么,呃。。。

通过以上捉虫的经历,又增长了很多经验呀!!嘿嘿

原创粉丝点击