Apache Server (xampp) 无法在 Windows 10(端口 80)上运行

Posted

技术标签:

【中文标题】Apache Server (xampp) 无法在 Windows 10(端口 80)上运行【英文标题】:Apache Server (xampp) doesn't run on Windows 10 (Port 80) 【发布时间】:2015-08-25 20:32:47 【问题描述】:

我已安装 Windows 10 预览体验计划。一切正常,除了 Apache。当我尝试启动它时,它说端口 80 被阻止。有没有办法解除阻止或告诉 Apache 使用另一个端口?

我之前使用的是 Windows 7。我在使用 Skype 时遇到了端口 80 的问题,但我已禁用它。

【问题讨论】:

PID 为 4。进程为系统(NT Kernel & System) 当心你的电脑品牌:发现我的电脑有一个自定义服务阻塞了端口。我不得不一一禁用所有服务才能最终弄清楚... XAMPP : Couldn't start Apache (Windows 10)的可能重复 更改 IIS 端口:***.com/questions/19312136/… 【参考方案1】:

我在 Windows 10 上遇到了同样的问题,IIS/10.0 正在使用端口 80

解决这个问题:

查找服务“W3SVC” 禁用它,或将其设置为“手动”

法文名称是:“Service de publishing World Wide Web

英文名称为:“World Wide Web Publishing Service

德语名称是:“WWW-Publishingdienst”——谢谢@fiffy

波兰语名称是:“Usługa publikowania w sieci WWW” - 谢谢@KrzysDan

俄罗斯名字是“Служба веб-публикаций”——谢谢@Kreozot

意大利名字是“Servizio Pubblicazione sul Web”——感谢@Claudio-Venturini

西班牙语名称是“Servicio de publicación World Wide Web” - 谢谢@Daniel-Santarriaga

葡萄牙语(巴西)名称是“Serviço de publicação da World Wide Web” - 感谢@thiago-born


替代方案:

另一种解决方案是通过管理控制台使用命令sc stop W3SVC 关闭服务 查看来自 Tobias Hochgürtel Apache Server (xampp) doesn't run on Windows 10 (Port 80) 的社区 wiki

2015 年 10 月 7 日编辑:有关详细信息,请参阅 Matthew Stumphy 的回答 Apache Server (xampp) doesn't run on Windows 10 (Port 80)

【讨论】:

太棒了...默认情况下这是 Windows 10 的问题 服务可以在启动时通过打开Administrative Tools并选择Services来禁用。将弹出一个标题为“服务”的窗口。然后找到World Wide Web Publishing Services,右键选择Properties。将Startup Type 更改为Manual 并单击Apply 其他人可以拨打sc getdisplayname W3SVC找到显示名 W3SVC 是否有任何理由在一台不像 Web 服务器的普通计算机上运行? 从已安装的 Windows 组件列表中删除万维网发布服务不是更好吗?那么就不需要禁用该服务,因为它不再被安装。【参考方案2】:

此答案旨在作为 paaacman 在此线程上评分最高的答案的附录。我只是想为像我这样不熟悉 Windows 10 的用户添加一些有用的细节。

Windows 10 在启动期间在端口 80 上自动运行 IIS(Internet 信息服务,Microsoft 的 Web 服务器软件)。为了在该端口上使用 Apache 服务器,必须停止 IIS。

paaacman 的响应将 IIS 服务器称为“W3SVC”或“万维网发布服务”。我想那是因为 Windows 10 将 IIS 作为服务运行。为了禁用它或修改服务的运行方式,您需要知道在系统中哪里可以找到“服务”。

我发现最简单的方法是单击 Windows 10 任务栏中开始菜单按钮旁边的搜索按钮,然后键入“管理工具”。您可以按回车键或单击 Windows 为您找到的“管理工具”链接。

将打开一个控制面板窗口,其中包含工具列表。您想要的是“服务”。双击它。

将打开另一个名为“服务”的窗口。找到名为“万维网发布服务”的服务。如果您的列表不是英文的,此线程中的其他一些用户已经列出了其他语言的名称。

如果您只想关闭此 Windows 会话的 IIS 服务器,但希望它在您下次启动 Windows 时再次自动运行,右键单击“万维网发布服务”并选择“停止”。服务器将停止,80 端口将被释放给 Apache(或任何你想用它的东西)。

如果您想防止 IIS 服务器在您以后启动 Windows 时自动运行,右键单击“万维网发布服务”并选择“属性。”在出现的窗口中,找到“启动类型”下拉列表,然后将其设置为“手动”。点击“应用”或“确定”以保存更改。你应该准备好了。

【讨论】:

【参考方案3】:

Windows 10 IIS 默认在端口 80 上运行,可以更改:

运行 appwiz.cpl 使用 Turn Windows features on or off 并安装 IIS 管理器控制台。

运行InetMgr.exe 并转到“连接-> 站点”并用鼠标右键单击默认条目“默认网站”上的上下文菜单打开。在上下文菜单中选择“绑定”以打开服务器地址和端口配置。

https://technet.microsoft.com/library/hh831681.aspx#Site_Bingings

【讨论】:

【参考方案4】:

我遇到了完全相同的问题,并以管理员身份从命令行运行以下命令解决了它:

1) 首先用下面的语句停止服务

net stop http /y

2) 然后禁用启动(可选)

sc config http start= 禁用

【讨论】:

这是释放 80 端口的最简单方法。我将它用于 vagrant 机器。【参考方案5】:

在命令行中输入

netstat -aon | findstr :80

您将看到使用端口 80 的进程的 PID。 然后尝试将这个应用程序配置为使用另一个端口,或者干脆杀死它

更新: 我会在这里写我的评论更清楚:根据this链接,在Windows 10中,占用80端口的是MsDepSvc服务。它用于IIS或Web Matrix 2。如果你不会使用IIS或Web Matrix 2 对于任何web开发,都可以尝试关闭服务

对于问题的第二部分,您可以通过编辑 [Apache 文件夹]/conf/httpd.conf 来告诉 Apache 使用另一个端口。它有“Listen 80”字符串。将 80 更改为您想要的任何空闲端口并重新加载 Apache

【讨论】:

这是系统。我不能杀了这个,可以吗? 快速谷歌搜索后,我找到了这个链接nextofwindows.com/…。 “ ...,您在后台运行的服务 MsDepSvc 占用了 80 端口。当您不打算使用 IIS 或 Web Matrix 2 进行任何 Web 开发时,快速解决方法是停止服务。然后启动服务当它需要时,希望能解决您在使用 Web Matrix 和传统 apache 开发之间切换时可能遇到的一些谜团。” 对不起,我没有这个过程。【参考方案6】:

您可能还需要终止 SQL Server Reporting Services。

【讨论】:

【参考方案7】:

就我而言,我需要用于 Apache 开发的 XAMPP 和用于 .Net 2013 开发的 IIS Express;所以我做了以下事情:

    在命令提示符中键入 services.msc,这会加载“Windows 服务”,我在其中找到“万维网发布服务”并停止它。 World Wide Web Publishing Service STOP

    我启动XAMPP控制面板点击“Config”,然后选择“Apache httpd.conf”。搜索“80”,然后在“Listen 80”和“ServerName localhost:80”中将其更改为“8080”。从“另存为”中保存文件并选择“所有文件”以不将其另存为“另存为类型”中的文本,“编码”应为“UTF-8”。 Apache httpd.conf

    退出 XAMPP 控制面板,然后重新启动它并从“操作”启动 Apache 和 mysql。现在您将看到端口已更改。如您所知,您必须使用“localhost:8080”而不是“localhost”来访问您的 Apache 服务器。此外,您还可以在同一台 Windows 10 PC 上运行 Apache 和 IIS Express。

我读了一篇文章,作者建议在哪里使用端口“9080”,但它对我不起作用。

【讨论】:

【参考方案8】:

只要进程使用端口 80,就会出现问题。

您可以运行 XAMPP 控制面板中提供的 Netstat 并检查系统中哪个进程使用端口 80。

对我来说,不是 IIS,而是 Skype

关闭该进程/应用程序,然后启动 Apache 服务。

【讨论】:

这似乎是之前许多答案的重复,也许最好只是作为一个评论说 Skype 是你的问题过程。 “这是Skype”听起来像是对我的回答!它可能不是为 OP 解决问题的答案,但它为我解决了问题,我很感激这是一个答案而不是评论,或者我可能没有看到它。【参考方案9】:

我知道这个问题可能已经解决了,但我在使用不同的解决方案时遇到了同样的问题。为此,我将解释另一种可能的解决方案。就我而言,80 端口被 Skype (pid: 25252) 占用,我不知道是什么程序。

要查看使用端口 80 的程序的 pid,您可以使用其他人之前所说的命令:

netstat -aon | findstr 0.0:80

要使用 pid 杀死进程(在您不知道程序的情况下),您必须以管理员权限打开 CMD 并使用下一个命令:

taskkill /pid 25252

此命令的其他选项是here。

【讨论】:

这不是同一个问题,因为您可以在Skype的设置中禁用端口80。你不需要杀死Skype! 你是对的。我现在看到了这个选项。当我遇到问题时,我没有看到它。【参考方案10】:

我知道这可能不是您的问题的原因,但我花了几个小时碰壁来解决这个问题,这就是我的解决方案。

(运行 Windows 10 x32)

所以我将 XAMPP 安装在一个深度嵌套的目录中,所有的 conf 文件都引用了 root\xampp\apache,而我的文件是 some_dir\another_dir\whatthehelliswrongwithme\finally\xampp\apache

所以我的选择是要么通过并编辑所有 \xampp\apache 引用并将它们指向正确的位置,或者,更简单的选择...在根目录重新安装 XAMPP,因此所有引用都指向正确的位置.

有点烦人,但我想这就是我们在 Mac 和 Windows 尝试成为朋友时得到的结果..

希望对你们中的一些人有所帮助。

【讨论】:

【参考方案11】:

如果您需要在端口 80/443 但在不同的 IP 地址上运行 IIS,您可以使用netsh http add iplisten xxx.xxx.xxx.xxx,如下所述: https://support.microsoft.com/en-us/help/954874/iis-binds-to-all-ip-addresses-on-a-server-when-you-install-iis-7-0-on

更多关于netsh http add iplisten的详情可以在这里找到: https://msdn.microsoft.com/en-us/library/windows/desktop/cc307219.aspx

【讨论】:

【参考方案12】:

我认为更改 Apache 服务器端口很简单

    转到 C:\xampplite\apache\conf 打开httpd.conf文件 搜索听8080 更改为任何其他,例如 9080 现在 XAMPP 重启尝试启动服务器

NB我正在使用 服务器版本:5.1.41 和 windows 10

【讨论】:

【参考方案13】:

关闭“某些系统进程”可能很棘手......您应该编辑@Sergey Maksimenko提到的[Apache文件夹]/conf/httpd.conf,如果您想配置虚拟主机,请使用新端口在 [Apache 文件夹]/conf/extra/httpd-vhosts.conf 中(我在 [Apache 文件夹]/conf/httpd-ssl.conf 中使用 4900 而不是 80 和 4901 而不是 443)。并且记住在访问本地主机(或您的虚拟主机)上的页面时使用端口,例如:localhost:4900/index.html

【讨论】:

【参考方案14】:

这个修复的 node.js 也没有在 Windows 10 下的端口 80 上运行,我收到了 listen eacces 错误。开始 > 服务,找到“万维网发布服务”并将其禁用,完全按照 paaacman 所述。

【讨论】:

【参考方案15】:

我遇到了同样的问题,但上述解决方案都不适合我。

Apache 使用端口 80 和 443(用于 HTTPS),并且两者都必须准备好用于 Apache 才能成功启动。只有 80 端口可能还不够。

我发现在运行 VMWare Workstation 时,我使用了 VMware 共享使用的端口 443。

您必须在 VMware 主首选项中禁用共享或在此部分更改端口。

之后,只要您没有其他服务器挂接到端口 80(请参阅上述解决方案),那么您应该能够在 XAMPP 或任何其他 Windows 堆栈应用程序上启动 Apache 或 nginx

希望对其他用户有所帮助。

【讨论】:

【参考方案16】:

虽然许多人正在采取停止/禁用 IIS 的方法,但知道您可以简单地修改 XAMPP 端口可能会有所帮助,该端口已得到答复 here。这是我必须采取的路线,因为我需要同时跑步。

【讨论】:

【参考方案17】:

除了非常明显的原因 (IIS) 之外,还有另一个常见的原因导致了这个问题。值得在这里引用这个问题及其答案:

http://***.com/questions/22994888/why-skype-using-http-or-https-ports-80-and-443 

因此,如果您的计算机中安装了 Skype,请务必检查此项。此处引用了解决方案:

要关闭和禁用 Skype 使用和侦听端口 80 和端口 443,请打开 Skype 窗口,然后单击工具菜单并选择选项。单击高级选项卡,然后转到连接子选项卡。取消选中或取消选中使用端口 80 和 443 作为传入连接的替代选项的复选框。单击保存按钮,然后重新启动 Skype 以使更改生效。

【讨论】:

每个人都说关闭和禁用 Skype,但这样做对 Skype 有什么影响?我们需要更改 Skype 中的任何配置设置吗? @luisdev 只需按照上面引用中描述的步骤操作即可。它告诉您如何更改 Skype 中的配置设置。 好的,我知道如何更改 Skype 中的配置设置,但是更改 Skype 设置对 Skype 功能有什么影响?它会影响我在 Skype 上拨打或接听电话的能力吗?如果 Skype 不再监听 80 和 443 端口,人们还能打电话给我吗? @luisdev 我在 Skype 中禁用这些端口没有问题。它似乎仅在您位于某些特定防火墙后面时才有用。因此,如果这对您不起作用,您将不得不重新打开它。不幸的是,Skype 以错误的方式执行此操作,它正在侦听所有地址,而不是仅侦听 OUTER 地址,这使您无法仅在 localhost 上侦听。【参考方案18】:

首先,打开regedit以管理员身份运行 see image 打开 HKEY_LOCAL_MACHINE\SYSTEM\CurrentCurrentControlSet\Services\HTTP 打开开始,将值从 3 更改为 4 see image 然后重启你的电脑

【讨论】:

以上是关于Apache Server (xampp) 无法在 Windows 10(端口 80)上运行的主要内容,如果未能解决你的问题,请参考以下文章

在 xampp localhost 中使用“https://”时,Apache HTTP Server 停止工作

安装xampp后不能启动apache,劳驾大家给出一些建议,谢谢。

安装xampp,apache无法启动

无法在 xampp 中启动 apache;意外关机

Apache/xampp 无法在 ubuntu 端口 80 上运行

为 XAMPP Apache 安装 SSL 证书