当前位置: > Linux服务器 > apache >

Apahce 无法启动

时间:2014-12-13 21:46来源:www.it.net.cn 作者:IT网

一、   现象描述

启动apache 的时候,竟然报了下面的错误,之前一直是可以正常运行的。错误截图如下: 

apache管理器

二、   利用事件查看器定位问题 

1.  定位问题 

面对错误,查看apache 日志,进入目录“../Apache2.2.17/logs ”,从这里的日志中看不出任何信息,而且日志的最后记录时间也比当前时间要早,所以通过这里的日志解决不了问题。

通过日志解决不了问题,但是我们可以尝试用其他方式来解决。既然apache 是作为windows 服务运行的,那么apache 的一些启动信息肯定会记录在“事件查看器”中。进入“控制面板”-> “管理工具”-> “事件查看器”,点击左侧导航“事件查看器”-> “Windows 日志”-> “应用程序”,见下图:

事件查看器

蓝色框中的四个错误都是apache 的日志信息,注意这四个信息的时间,是在同一个时间( 见红色下划线 ) 产生的,这四个信息记录了apache 启动失败触发的4 个不同事件。再看看下面红框中的内容,表示80 端口不可用。

  

2.  确定80 端口是否正在被使用 

80 既然不可以,是不是因为80 端口正在被占用呢?在Cmd 窗口中,利用命令确定80 端口是否正在被占用,具体命令见下表: 

C:/Users/Administrator>netstat -ano|find "80" 

  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4

  TCP    0.0.0.0:1027           0.0.0.0:0              LISTENING       980

  TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       480

  TCP    0.0.0.0:8038           0.0.0.0:0              LISTENING       7076

  TCP    0.0.0.0:8067           0.0.0.0:0              LISTENING       7076

  TCP    127.0.0.1:1433         127.0.0.1:1128         ESTABLISHED     480

通过红色记录,我们可以看到80 端口正在被进程号Id 为4 的进程占用。 

3.  根据进程Id 定位都具体的进程 

打开任务管理器,点击“PID ”,按照PID 进行排序(如果没有显示PID ,则点击“查看”-> “选择列”,勾选上PID 即可),见下图: 

任务管理器

 

从这里可以看到, ID 为 4 的进程名为“ NT Kernel & System ”,这是 windows 的内核进程,但是为什么会占用 80 端口呢。到这里,想到了 windows 的自身的 IIS 服务器,因为今天测试ASP.NET 的程序,把 IIS 开启了。

4.  关闭IIS ,Apache 启动成功 

进入 IIS 服务器,关闭 IIS 服务,启动 apache 成功。当然也不一定非要关闭 IIS 服务,可以修改 IIS 服务或者 apache 的监听端口,只要两者的监听端口不冲突,就可以同时运行这两个软件。






(责任编辑:IT)
------分隔线----------------------------