使用端口 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 部署代理服务万维网发布服务 可以设置为手动启动以阻止它们运行。从具有管理员权限的帐户停止或更改这些服务。 SkypeTeamViewer 可以配置为不使用端口 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 <80> 【参考方案2】:

对我来说,原来是“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 服务失败(“忙”)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

赞普; Apache 80 端口繁忙

忙... Apache 启动 [端口 80]

忙... Apache 启动 [端口 80]

PHPStudy2014 Apache启动失败,失败原因80端口、3306端口被占用,用的WIN10系统,求解决。

nginx80端口被占用,启动失败。

WAMP 端口 80 忙