zoukankan      html  css  js  c++  java
  • apache服务崩溃捉虫记

    公元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 的文件,记录了整个过程!

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

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

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

  • 相关阅读:
    WCF 第四章 绑定 在多个绑定上暴露一个服务契约
    WCF 第五章 行为 事务跨操作事务流
    WCF 第五章 导出并发布元数据(服务行为)
    WCF 第五章 行为 通过配置文件暴露一个服务行为
    WCF 第五章 不支持会话的绑定的默认并发和实例
    WCF 第五章 并发和实例(服务行为)
    WCF 第五章 行为 总结
    WCF 第四章 绑定 绑定元素
    WCF 第五章 行为 事务之选择一个事务协议OleTx 或者WSAT
    WCF 第四章 绑定 比较各种绑定的性能和可扩展性
  • 原文地址:https://www.cnblogs.com/lechie/p/2383222.html
Copyright © 2011-2022 走看看