总有人间一两风,填我十万八千梦

Windows10下80端口被PID为4的System占用导致Apache无法启动的分析与解决方案

软件技巧 Zero、J 28996℃ 0评论

昨天刚更新了Windows10,总体上来说效果还是蛮不错的,然而今天在开启Apache服务器的时候却发现,Apache莫名其妙的打不开了,起初以为是权限的问题,于是使用管理员身份的控制台去调用命令net start Apache2.4,结果依然是无法打开。手动启动服务报错“Windows不能再本地计算机启动Apache,有关更多信息,查阅系统时间日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。”如下图所示:

Apache启动错误代码1

Windows不能再本地计算机启动Apache,有关更多信息,查阅系统时间日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。

看到这种情况,我有手动cd到Apache的httpd.exe的目录,执行了一下httpd,这下原因找到了,如下图所示:

Apache Windows10 端口绑定错误

(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试。 : AH00072: make_sock: could not bind to address 127.0.0.1:80
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

从图中可以看到错误的原因是套接字绑定错误,这下可以确定是Apache的80端口被占用了。于是就使用命令 netstat -ano 来查看一下到底是哪个程序占用了80端口,如图所示端口查找的结果:

system进程占用80端口

看到80端口被PID为4的System进程占用,呵呵,我想说一句我擦嘞什么鬼+_+。仔细想了想,一般的程序不会占用80,遂使用命令  netsh http show servicestate 查看一下当前的http服务状态,发现果然有问题,如下图所示:

http服务状态

图中可以看到,80端口被一个DefaultAppPool的东西占用了,如果用过IIS的童鞋,这时候肯定一定想到了原因,这里我们依然要接着往下找原因,图中可以看出控制器进程ID为4640,那么就 就继续查看一下4640进程是什么鬼,进入任务管理器,找到PID4640的进程,右键转到服务,可以看到当前的进程所在的服务,如图所示:

转到服务

IIS服务
看到图中的服务,这里原因也就找到了,IIS的World Wid Web Publishing Service 万维网服务的问题。

解决方案:

控制面板–>程序–>启用或者关闭Windows功能–>找到Internet Information Service,将其关闭即可

关闭IIS

转载请注明:悠然品鉴 » Windows10下80端口被PID为4的System占用导致Apache无法启动的分析与解决方案

喜欢 (84)or分享 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(8)个小伙伴在吐槽
  1. 多谢博主 解决了
    旺旺2016-09-26 14:55 回复
  2. 给力
    哈哈2016-05-16 09:32 回复
  3. 博主,请问一下我关了这个服务为啥我阿里云虚拟主机的网站上不去了?别的电脑却没问题~
    xinxin2015-11-26 13:46 回复
    • 你的服务器是不是 用的IIS啊,是的话 就不要关闭IIS
      浅灬笑2015-11-26 15:00 回复
  4. 博主,您好,你我的相遇已是缘分,希望今后我们可以经常来往,每一次留言,都是我对您最真挚的祝福,希望您可以过的快乐、幸福!我会一直为你默默加油! 我的博客:http://www.yibut.com ,期待您的光临!
    全球骗术2015-08-05 14:55 回复
    • 骗术揭秘,支持一下!
      浅灬笑2015-08-06 08:53 回复
  5. 依旧无法启动怎么办
    初七2015-07-31 17:35 回复
    • 你在控制台,cd 进入到Apache的bin目录,执行 httpd.exe命令,看看报什么错误, 再有就是通过 httpd -k uninstall 卸载Apache,然后在 httpd -k install 重新安装Apache试试看
      浅灬笑2015-08-01 13:27 回复