Apache 服务器 (xampp) 不在 Windows 10(端口 80)上 运行

Apache Server (xampp) doesn't run on Windows 10 (Port 80)

我已经安装了 Windows 10 Insider Program。一切正常,除了 Apache。当我尝试启动它时,它说端口 80 被阻止。有没有办法取消阻止或告诉 Apache 使用另一个端口?

我之前用的是Windows7。我在使用 Skype 时遇到了端口 80 的问题,但我已将其禁用。

输入命令行

netstat -aon | findstr :80

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

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

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

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

要解决这个问题:

  • 查找服务"W3SVC"
  • 禁用它,或将其设置为"manual"

法语名称是:“Service de publication 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

Español 名称是 "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 的社区 Wiki

编辑 2015 年 10 月 7 日:有关更多详细信息,请参阅 Matthew Stumphy 的回答

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

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

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

paaacman 的响应将 IIS 服务器称为 "W3SVC" 或 "World Wide Web Publishing Service"。我想那是因为 Windows 10 运行s IIS 即服务。为了禁用它或修改服务 运行s 的方式,您需要知道在系统中的何处可以找到 "Services"。

我发现最简单的方法是单击 Windows 10 任务栏中开始菜单按钮旁边的 搜索按钮 ,然后 键入"Administrative Tools"。您可以点击 return 或单击 Windows 为您找到的 "Administrative Tools" link。

控制面板 window 将打开,其中包含工具列表。您想要的是“Services”。双击它。

另一个 window 将打开名为 "Services." 找到名为“World Wide Web Publishing Service”的服务。如果您的列表不是英文,则此线程中的其他一些用户列出了其他语言的名称。

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

如果要防止 IIS 服务器在以后 Windows 启动时自动 运行ning,右键单击 "World Wide Web Publishing Serivce" 和 select“属性。”在出现的window中,找到"Startup type"下拉菜单设置"Manual."点击"Apply" 或 "OK" 以保存您的更改。你应该准备好了。

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

1) 首先用下面的方式停止服务

net stop http /y

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

sc config http start= disabled

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

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

运行 InetMgr.exe 并转到 "Connections -> Sites" 并用鼠标右键单击默认条目 "Default Website" 上的上下文菜单打开。在上下文菜单中 select "Bindings" 打开服务器地址和端口配置。

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

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

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

netstat -aon | findstr 0.0:80

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

taskkill /pid 25252

此命令的其他选项是 here

在我的例子中,我需要 XAMPP 用于 Apache 开发和 IIS Express 用于 .Net 2013 开发;所以我做了以下事情:

  1. 在命令提示符中键入 services.msc,这会在我找到 "World Wide Web Publishing Service" 的位置加载 "Windows Services" 并停止它。 World Wide Web Publishing Service STOP

  2. 我开始XAMPP控制面板点击"Config",然后选择"Apache httpd.conf"。搜索“80”,然后在 "Listen 80" 和 "ServerName localhost:80" 中将其更改为“8080”。保存来自 "Save As" 的文件并选择 "All files" 以不将其保存为来自 "Save As Type" 的文本并且 "Encoding" 应该是 "UTF-8"。 Apache httpd.conf

  3. 退出 XAMPP 控制面板,然后重新启动它并从 "Action" 启动 Apache & MySQL。现在您将看到端口已更改。如您所知,现在您必须使用 "localhost:8080" 而不是 "localhost" 来访问您的 Apache 服务器。此外,您在同一台 Windows 10 PC 中同时拥有 Apache 和 IIS Express 运行。

我读了 post 一些作者建议使用端口“9080”但它对我不起作用。

每当进程使用端口 80 时就会出现此问题。

您可以 运行 Netstat 可以在 XAMPP 控制面板 中查看哪个进程使用端口80 在你的系统中。

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

关闭 process/application 然后启动 Apache 服务。

首先,以管理员身份打开regedit 运行 see image 打开 HKEY_LOCAL_MACHINE\SYSTEM\CurrentCurrentControlSet\Services\HTTP 打开开始,将值从 3 更改为 4 see image 然后重新启动计算机

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

这也修复了 node.js 而不是 运行 在 Windows 10 下的端口 80 上,我遇到了 listen eacces 错误。开始 > 服务,找到 "World Wide Web Publish Service" 并禁用它,完全按照 paaacman 描述的。

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

(运行 Windows 10 x32)

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

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

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

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

我遇到了同样的问题,none 以上解决方案对我有用。

A​​pache 同时使用端口 80 和 443(用于 HTTPS),并且这两个端口都必须准备就绪以便 Apache 成功启动。只有端口 80 可能不够。

我发现在我的案例中,当 运行 VMWare Workstation 时,我有 VMware 共享使用的端口 443。

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

在那之后,只要你没有其他服务器连接到端口 80(参见上面的解决方案),那么你应该能够在 XAMPP 或任何其他 Windows 堆栈上启动 Apache 或 NGinx申请。

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

虽然许多人都采用 stop/disable IIS 的方法,但知道您可以简单地修改 XAMPP 端口可能会有所帮助,已回答 here。这是我必须走的路线,因为我需要 运行.

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

 

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

To turn off and disable Skype usage of and listening on port 80 and port 443, open the Skype window, then click on Tools menu and select Options. Click on Advanced tab, and go to Connection sub-tab. Untick or uncheck the check box for Use port 80 and 443 as an alternatives for incoming connections option. Click on Save button and then restart Skype to make the change effective.

如果您需要 运行 端口 80/443 上的 IIS 但在不同的 IP 地址上,您可以使用 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

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

  1. 转到C:\xampplite\apache\conf
  2. 打开 httpd.conf 个文件
  3. 搜索 收听 80
  4. 80 更改为 9080
  5. 现在XAMPP重启尝试启动服务器

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