如何配置我的Apache服务器在端口80上运行?使用端口80时,我的Apache服务失败;它说BUSY
。
当我将config中的端口更改为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
,试图找出使用此端口的服务。看起来“System”在PID 4上。我已经将Skype配置为不使用端口80而没有任何运气。我在Windows 7上安装了Microsoft WebMatrix,我甚至删除了IIS 7.5 Server Express以释放此端口,但都无济于事。
答案 0 :(得分:30)
有几个程序可以阻止该端口。候选人是:
VMware (在VMware Workstation中转到编辑>>偏好设置>>共享虚拟机,并禁用共享或更改端口)
Web部署代理服务和万维网发布服务可以设置为手动启动,以防止它们运行。从具有管理员权限的帐户停止或更改这些服务。 可以将 Skype 和 TeamViewer 配置为不使用端口80。 对于 Skype 转到选项>高级>连接并取消选中“将端口80和443用于传入连接” 对于 TeamViewer 转到额外>选项>高级并取消选中上述类似消息。
编辑:我发布了社区Wiki,所以如果人们找到其他程序,他们可以在这里添加。
答案 1 :(得分:9)
对我而言,事实证明是“Web部署代理服务”正在接收端口80.一旦被禁用,apache就会立即启动。我也遇到过一些人说有些SQL Server服务阻止了它。
修改强>
刚想我会添加新的MSN(Skype)也会导致这种情况,默认情况下使用端口80。它可以在设置中更改:
工具>选项>高级>连接>取消“使用端口80和443”>保存
答案 2 :(得分:4)
您也可以在httpd.conf文件中更改Apache Web Server正在使用的端口。
在我使用的Windows操作系统命令提示符中;
netstat -an
要查看哪些服务已在运行,以及它们正在使用哪些端口,请选择一个未使用的端口号。更简单。那是我的Dev环境。在实际的服务器或云端,我会毫无冲突地运行Apache Web服务器,只关闭恰好使用端口80的其他任何东西。
答案 3 :(得分:2)
我目前正在测试下一版本的Windows,Windows 7,并在尝试使用默认端口80安装和运行Apache时遇到了一个奇怪的问题。
从命令行运行命令'netstat -ano' PID 4正在使用端口80。
使用Power Shell查找PID 4,然后显示任务管理器 PID 4是NT Kernel!
因此,默认情况下Windows 7似乎使用端口80。
在互联网上进行一些搜索并对我自己进行一些研究之后,我发现服务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开始!
答案 4 :(得分:2)
哦,谢谢你一千次。我一直在挣扎着让80端口免费。尝试了我在聊天室,论坛上发现的所有内容,包括上面的正则表达式编辑,但仍然有:
netstat -ano -p tcp | findstr LISTENING
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已从显示屏上消失。真是一种解脱!
答案 5 :(得分:0)
以为我会把我的意见输入: 我停止了服务MsDepSvc(又名:Web部署代理服务),这解决了这个问题。