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


84

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

我以前使用Windows 7。我在使用Skype的80端口时遇到了问题,但是我将其禁用了。


PID为4。过程为系统(NT内核和系统)
Aloso 2015年

当心您的计算机品牌:发现我的计算机有一项自定义服务正在阻止该端口。我不得不禁用所有服务一个接一个,终于找出答案......
让·弗朗索瓦·Savard


Answers:


208

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

为了解决这个问题:

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

法语名称是:“ Service de Publication World Wide Web

英文名称为:“万维网发布服务

德国名字是:“ WWW-Publishingdienst” –谢谢@fiffy

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

俄语名称是“Службавеб-публикаций” –谢谢@Kreozot

意大利语名称是“ Servizio Pubblicazione sul Web” –感谢@ Claudio-Venturini

西班牙文的名称是“ Servicio depublicaciónWorld Wide Web”-感谢@ Daniel-Santarriaga

葡萄牙语(巴西)的名字是“Serviçodepublicaçãoda World Wide Web”-感谢@ thiago-born


备择方案 :


编辑2015年10月7日:有关更多详细信息,请参见Matthew Stumphy的回答Apache Server(xampp)不在Windows 10(端口80)上运行


2
太棒

3
打开Administrative Tools并选择可以在启动时禁用服务Services。将弹出一个标题为“服务”的窗口。然后找到World Wide Web Publishing Services,右键单击并选择Properties。更改Startup TypeManual并单击Apply
zgr024

3
其他人可以通过调用找到显示名称sc getdisplayname W3SVC
洪扎库查尔

W3SVC是否有任何理由可以在不像Web服务器的正常计算机上运行?
DaedalusAlpha

从已安装的Windows组件列表中删除World Wide Web Publishing服务会更好吗?然后,由于将不再安装该服务,因此无需禁用该服务。
Arnoud Sietsema '16

31

此答案旨在作为paaacman在此主题上最高评分的答案的附录。我只是想为像我这样不了解Windows 10方式的用户添加一些有用的细节。

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

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

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

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

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

如果您只想为该Windows会话关闭IIS服务器,但希望它在下次启动Windows时再次自动运行,请右键单击“ World Wide Web Publishing服务”,然后选择“停止”。服务器将停止,端口80将被释放给Apache(或您要用于其的任何其他功能)。

如果要防止IIS服务器在将来启动Windows时自动运行,请右键单击“ World Wide Web Publishing Serivce”,然后选择“属性”。在出现的窗口中,找到“启动类型”下拉菜单,并将其设置为“手动”。单击“应用”或“确定”保存更改。你应该准备好了。



14

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

1)首先使用以下命令停止服务

净止损http / y

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

sc config http start =禁用


这是释放端口80的最简单方法。我正在将它用于无业游民的机器。
马丁斯Briedis

9

在命令行输入

netstat -aon | findstr :80

您将看到使用端口80的进程的PID。然后尝试配置此应用以使用其他端口,或者干脆将其杀死

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

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


这是系统。我不能杀死这个,可以吗?
阿洛索2015年

快速搜索之后,我找到此链接nextofwindows.com/…。“ ...,您有在后台占用端口80的MsDepSvc服务。快速解决方案是,当您不打算将IIS或Web Matrix 2用于任何Web开发时,停止该服务。并启动该服务。在需要时,希望能解决您在使用Web Matrix切换到传统apache开发之间可能遇到的一些谜团。”
谢尔盖·马克西缅科

抱歉,我没有此过程。
Aloso


5

就我而言,我既需要用于Apache开发的XAMPP,也需要用于.Net 2013开发的IIS Express;因此,我执行以下操作:

  1. 在命令提示符下键入services.msc,这将加载“ Windows Services”(位于我位于“ World Wide Web Publishing服务”的位置)并停止它。 万维网发布服务STOP

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

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

我在某位作者建议使用端口“ 9080”的地方读了一篇文章,但它对我不起作用。


3

每当进程使用端口80时,就会发生此问题。

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

对我来说不是IIS,而是Skype

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


这似乎是许多先前答案的重复,也许更好的做法是,注释一下Skype是您的问题过程。
blm 2015年

“那是Skype”听起来像是对我的回答!可能不是解决OP的答案,但它对我有用。我很庆幸这是一个答案,而不是评论,或者我可能没有看过。
理查兹(Arichards)2016年

1

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

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

netstat -aon | findstr 0.0:80

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

taskkill /pid 25252

此命令的其他选项在这里


这不是相同的问题,因为您可以在skype的设置中禁用端口80。您无需杀死Skype!
阿洛索

你是对的。我现在看到了该选项。当我遇到问题时,我没有看到它。
CGG 2015年

1

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

(执行Windows 10 x32)

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

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

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

希望对您有帮助。



1

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

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

注意:我在Windows 10上使用服务器版本:5.1.41


0

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


0

这个固定的node.js也没有在Windows 10下的端口80上运行,我得到了一个listen eacces错误。开始>服务,找到“万维网发布服务”并禁用它,完全与paaacman描述的一样。


0

我遇到了同样的问题,以上解决方案均不适合我。

Apache同时使用端口80和443(用于HTTPS),并且都必须准备就绪才能使用Apache才能成功启动。仅端口80可能不够。

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

您必须在VMware主偏好设置中禁用共享或在此部分中更改端口。

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

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


0

尽管许多人都在采用这种方法来停止/禁用IIS,但知道您可以简单地修改XAMPP端口可能会有所帮助,已在此处回答。这是我必须同时跑步的必经之路。


0

除了非常明显的原因(IIS),还有另一个足够普遍的原因可以解决此问题。值得在这里引用此问题及其答案:

http://stackoverflow.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

@luisdev只需遵循上面引用中描述的步骤。它告诉您如何在Skype中更改配置设置。
Earth Engine

好的,我知道如何在Skype中更改配置设置,但是更改Skype设置对Skype功能有什么影响?这会影响我在Skype上拨打或接听电话的能力吗?如果Skype不再在80和443端口上监听,人们仍然可以给我打电话吗?
luisdev

1
@luisdev在Skype上禁用这些端口没有问题。似乎只有在使用某些特定防火墙后,它才有用。因此,如果这对您不起作用,则必须重新打开它。不幸的是,Skype以错误的方式执行此操作,即它仅侦听所有地址,而不是仅侦听外部地址,从而使您无法仅侦听本地主机。
Earth Engine

-1

首先,打开注册表以管理员身份运行 看原图 打开HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentCurrentControlSet \ SERVICES \ HTTP开放开始,变化值3〜4 见图片 ,然后重新启动计算机

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.