我试图在我的计算机上安装 Zend Server CE,但当我需要选择 Web 服务器的端口时,它显示:“Web 服务器端口:80 已占用”。因此,我决定使用 CMD 检查哪些端口在使用 80,方法是输入:“netstat -o -n -a | findstr 0.0:80”:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
我在任务管理器的进程和服务中检查了 PID:4。PID 4 似乎为“系统”。
所以,我想知道如何阻止“系统”(PID:4)使用端口 80?
信息: 我正在使用:Windows 7 64位;Zend Server CE 5.5.0
答案1
好的,在网上搜索了一段时间后,我找到了解决问题的方法。
只需按照以下步骤诊断并解决您的问题:
获取正在监听 80 端口的 pid:
netstat -nao | find ":80"
打开任务管理器,转到进程选项卡并检查“PID”
Menu/View/Select Columns…
,然后使用上一步找到的 PID 查找进程。如果它是一个正常应用或 IIS,请禁用或卸载它。某些程序(例如 Skype)可以选择禁用其对端口 80 的使用。
如果它是一个系统进程—PID 4—您需要禁用由其他服务按需启动的 HTTP.sys 驱动程序,例如 Windows 7 或 2008 上的 Windows 远程管理或打印后台处理程序。
有两种方法可以禁用它,但第一种方法更安全:
1.
进入设备管理器,从菜单/视图中选择“显示隐藏的设备”,进入“非即插即用驱动程序”/HTTP,双击它以禁用它(或将其设置为手动,某些服务依赖于它)。
重新启动并用于
netstat -nao | find ":80"
检查 80 是否仍在使用。
2.
启动 RegEdit。
去
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
将“start”的值改为4,表示禁用。
重新启动计算机。
我的解决方案是步骤4。
答案2
我刚刚在安装 Windows 8 Pro - Build 9200 后遇到了这个问题。我尝试了几种方法,但都不起作用。不过,这个方法解决了这个问题。
您需要更改 HTTP.SYS 的绑定 IP 地址
netsh http add iplisten ipaddress=::
http://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/
答案3
就我而言,它是 WebMatrix。在此处查看可能的解决方案(包括此解决方案):http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/
基本上:
从管理工具中打开服务并找到“Web 部署代理服务”。停止该服务并将其启动类型设置为“手动”。
Web 部署代理服务是随 WebMatrix 一起部署的,这也是我遇到麻烦的原因。它也可能随使用 Microsoft 的 Web 平台安装程序安装的其他应用程序一起分发。
答案4
虽然使用该命令netsh http add iplisten ipaddress=::
确实允许 Apache 在我的 Windows 10 64 位系统上启动,但它在尝试访问 localhost 时造成了严重破坏,因为即使我的 hosts 文件中有正确的条目,它仍被绑定到::
而不是127.0.0.1
。我最终改用了这个命令:
netsh http add iplisten ipaddress=0.0.0.0
这不仅有效,而且还允许浏览器访问 localhost。对我来说,这是一个更好的解决方案。