发现80端口一直被占用。用命令看了一下(如上图),确实是被占用了。
80端口被占用,于是win+r 运行cmd 输入netstat -ano 可以看到80端口被PID4占用,
于是打开任务管理器-进程-查看,选择列,勾选PID 可以看到pid 4 的被NT kernel & System 占用 该进程是Http.sys。
它是http API的驱动组件,Http栈服务器。如果该端口被Http.sys占用,说明一些正在使用http.sys的应用程序在运行。
这就是阻止Apache运行的原因,因为Http.sys占用着80端口。 你可以按照下面步骤禁用http.sys:
1. net stop http(*这个运行,提示无法停止需要你重启一下,在 你运行第二次的时候会提示有在停止或无启动*)
这个你可能看到有很多关联服务,先看一下这些你是否需要 不要盲目的下一步 在运行 Sc config http start= disabled 如果不成可能需要你重启一下在运行,我这就重启了 在进行查看应该 没有在占用80端口了。
快速操作:但是IIS都已经停止了,实在没办法,就把IIS给删除了,然后重启,再安装发现还是被占用!
网上找了一下,在国外的一个网站找到了解决办法,设备管理器里面,把http禁止掉就可以了。
点查看->显示隐藏设备,找到非即插即用驱动程序,HTTP上点击右键->卸载,然后重启就可以了。
在Windows Server 2008 上部署了tomcat,但想把默认的8080改为80端口,但tomcat启动时日志提示出端口已被占用,经查看是系统system把80给占了:
>netstat -ano
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
:
:
在任务管理器中找到PID为4的进程是system,很纳闷,system怎么会占用80端口,在网上辗转找寻了一晚没有结果,就在刚刚又搜寻了一下,问题得到解决:
结束系统服务项:World Wide Web Publishing Service。
注:此服务功能描述为“通过 Internet 信息服务管理器提供 Web 连接和管理”,也就是我们常听说的www服务,但IIS admin service服务停用了,可是IIS服务还在,所以端口80一直被占用,但很奇怪为什么显示的是system占用80,虽然www是系统服务,但总得是iis进程对应80才是啊。搞不明白