原因
昨夜停电,机房服务器也跟着关机了。
今早重启服务器,然后打开wamp,发现apache服务启动不了。
apache启动不了,首先就是想到端口被占用,于是我们测试一下;
用wamp自带的工具测试80端口,右键wamp任务栏图标->点击tools菜单->点击测试80端口。
如图所示,端口被一个Micorsoft-HTTPAPI/2.0Server占用。
解决方案
我们知道了是Microsoft-HTTPAPI/2.0占用了80端口。于是我们搜索一下
网上给出的解决方案有三个
1.关闭IIS
2.关闭SQL Server Reporting Services
3. 关闭Web 部署代理服务
大家可以根据上述提示尝试一下解决我们的问题,但是这个方式治标不治本啊,我们并没有找到我们机器上的问题是属于哪一个,纯靠猜测!这不是正确的解决问题的方式!!!
追根溯源
现在我们来找自己机器上的原因
查看http服务快照
在命令行中输入netsh http show servicestate
在弹出的消息中,找到http80相关的消息
在消息的后面请求队列中,找到相关的pid号(进程id),这里是根据请求队列名称来查找,但是这里出现了两个pid:560和2344。暂时无法确定是哪个!可以估计是2344。
找到相关程序
我们知道了pid,通过任务管理器可以查到相关的程序
1.打开任务管理器
点击详细(这里每个windows版本不一样),重点是让它显示pid,方便我们查找
找到对应的pid,我们右键,点击打开文件位置
于是我们发现了我们的根本原因。就是SQL Server Reporting Services
关闭
进入服务管理器
1.停止
首先停止服务,右键,停止
2.禁用
防止下次开启有启动,我们把启动类型改为禁用
右键,属性
到此,我们的任务完成了。找到了占用80端口的罪魁祸首,然后我们关闭并且禁用。
最后我们重新测试我们的80端口。