使用端口 80 时 Apache 服务失败(“忙”)[关闭]
Posted
技术标签:
【中文标题】使用端口 80 时 Apache 服务失败(“忙”)[关闭]【英文标题】:Apache service failing ("BUSY") when using port 80 [closed] 【发布时间】:2011-08-15 11:45:35 【问题描述】:如何将我的 Apache 服务器配置为在端口 80 上运行?使用端口 80 时,我的 Apache 服务失败;它说BUSY
。
当我将配置中的端口更改为 85 时,Apache 可以工作,但这需要每次使用 localhost 在地址栏中手动输入 85。
我试图找出哪个程序正在使用端口 80,但我什么也想不出来。我首先在 cmd 中输入netstat -n -a -o -p TCP
,然后我想出了这个信息
Local Address 0.0.0.0:80 State: Listening PID: 4
然后我在 cmd 中输入tasklist
试图找出哪个服务正在使用这个端口。看起来“系统”在 PID 4 上。我已将 Skype 配置为不使用端口 80,没有任何运气。我在 Windows 7 上安装了 Microsoft WebMatrix,我什至删除了 IIS 7.5 Server Express 以释放此端口,但都无济于事。
你们能帮帮我吗?我正在使用 Windows 7 和 XAMPP。
【问题讨论】:
【参考方案1】:多个程序可以阻止该端口。候选人是:
Skype Web 部署代理服务(可以通过 Start -> [-> Run] -> services.msc 停止) 万维网发布服务 IIS(如果已安装) 团队查看器VMware(在 VMware Workstation 中转到编辑>>首选项>>共享虚拟机,然后禁用共享或更改端口)
Web 部署代理服务 和 万维网发布服务 可以设置为手动启动以阻止它们运行。从具有管理员权限的帐户停止或更改这些服务。 Skype 和 TeamViewer 可以配置为不使用端口 80。 对于 Skype 转到 选项 > 高级 > 连接 并取消选中“使用端口 80 和 443 进行传入连接” 对于 TeamViewer,转到 Extra > Options > Advanced 并取消选中与上述类似的消息。
编辑:我将帖子设为社区 Wiki,因此如果人们发现其他程序,可以在此处添加。
【讨论】:
如果你有 Skype 运行,你不能在 80 上启动 apache。只需停止 Skype,然后启动 apache,然后启动 Skype(如果它已经空闲,它只会阻止 80)。当然,这仅在 Skype 引起问题时才有效。 我已经退出了 Skype,我什至在高级中取消了端口 80 选项,但仍然没有结果。 OK... 当你制作: netstat -abno -p TCP 时,应该有一行说: TCP对我来说,原来是“Web 部署代理服务”占用了 80 端口。一旦它被禁用,apache 就会立即启动。我也遇到不少人说某些 SQL Server 服务阻止了它。
编辑: 只是想我会补充一点,新的 MSN(Skype) 也会导致这种情况,默认情况下使用端口 80。它可以在设置中更改:
工具>选项>高级>连接>取消勾选“使用端口80和443”>保存
【讨论】:
【参考方案3】:您也可以在 httpd.conf 文件中更改 Apache Web 服务器正在使用的端口。
在我使用的 Windows 操作系统命令提示符中;
netstat -an
要查看哪些服务已经在运行,以及它们正在使用哪些端口,然后只需选择一个未使用的端口号。简单得多。这适用于我的开发环境。在实际的服务器或云中,我会运行 Apache Web 服务器而不会发生冲突,并且只是关闭任何碰巧使用端口 80 的东西。
【讨论】:
我刚刚将httpconf
中的端口更改为端口 8080,WAMP 立即运行良好。这个解决方案可能比找出哪个服务正在使用端口 80 更容易。
肯定 --> Listen 8080: line 47 --> ServerName localhost:8080: line176 C:\xampp\apache\conf\httpd.conf【参考方案4】:
我目前正在测试下一个版本的 Windows,即 Windows 7,并在尝试使用默认端口 80 安装和运行 Apache 时遇到了一个奇怪的问题。
从命令行运行命令“netstat -ano”显示 PID 4 正在使用端口 80。
使用 Power Shell 查找 PID 4,然后显示任务管理器 PID 4 是 NT 内核!
所以默认情况下,Windows 7 似乎使用端口 80。
在 Internet 上进行了一些搜索并自己进行了一些研究后,我发现服务 http.sys 是罪魁祸首,我需要做的就是禁用它,但我在服务控件中找不到该服务面板小程序。 那么解决办法是什么?
您必须通过注册表手动禁用 http.sys 服务:
1) 启动 RegEdit:
2) 转到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
3) 添加新的 DWORD(32 位)值
4) 将其命名为“NoRun”,不包括引号
5) 双击新属性
6) 在数值数据字段中输入“1”,不包括引号,然后单击确定
7) 重新启动您的计算机
您现在应该发现 Apache 将在端口 80 上启动!
【讨论】:
【参考方案5】:哦,谢谢你一千次。我整天都在努力争取释放 80 端口。尝试了我在聊天室、论坛上找到的所有内容,包括上面的正则表达式编辑,但仍然存在:
netstat -ano -p tcp | findstr 监听
TCP 0.0.0.0:80 0.0.0.0 LISTENING 4
TCP 0.0.0.0:445 0.0.0.0 LISTENING 4 etc.
现在端口 80 已从显示屏上消失。真是一种解脱!
【讨论】:
【参考方案6】:只是想我会把我的意见放在: 我停止了服务 MsDepSvc(又名:Web 部署代理服务),这解决了问题。
【讨论】:
以上是关于使用端口 80 时 Apache 服务失败(“忙”)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章