XAMPP-端口80正在使用PID 4的“无法打开过程”!12


181

我已经尝试了两天来解决此问题。我是这种事物的新手,所以如果有人可以告诉我如何修复它,我将不胜感激。

我曾尝试删除Skype,但那没有用,我曾尝试关闭万维网,而IIS似乎没有任何作用。

12:51:22 PM  [Apache]   Problem detected!
12:51:22 PM  [Apache]   Port 80 in use by "Unable to open process" with PID 4!
12:51:22 PM  [Apache]   Apache WILL NOT start without the configured ports free!
12:51:22 PM  [Apache]   You need to uninstall/disable/reconfigure the blocking application
12:51:22 PM  [Apache]   or reconfigure Apache and the Control Panel to listen on a different port

2
不,我想在这里键入它,不是每个人都了解计算机的所有知识。我当时正在寻求帮助,我已经在Google上搜索了它,而人们所说的一切都行不通。
user3097839 2013年

啊,这现在更有意义了。尝试petri.co.il/quickly_find_local_open_ports.htm找出谁阻止端口80
佩卡

9
@Pekka自从我停止用纸尿裤包装不久以后,我就一直在使用计算机,现在我也已经是程序员近十年了,我用谷歌搜索了这个问题,而且很幸运,因为问和回答这个问题的人都在使用这个现场,我很快找到了答案。尽管可能应该将其迁移到超级用户,但是给人们加标签并使他们对提出合法问题感到愚蠢,这与该社区的运作方式相反。我建议你在生活中找到其他目的。

3
好吧,我不确定在您的搜索过程中此结果在何处产生,但是在我的搜索中,由于有了此线程,它才是列表的顶部。这正是该社区努力成为的一个高度可见的知名知识库。因此,尽管我很欣赏您的意思,但实际上,由于OP,任务得以完成。

@TechnikEmpire,但这个问题现在已成为Google的最高结果,这是问题的一部分而不是解决方案。在这个问题出现之前,Google的搜索结果已经包含了很好的答案-我一直在做评论之前先进行检查。由于SO与Google的巨大影响力,这些问题现在可能已被这个问题所推翻。另请参见此处的讨论:meta.stackexchange.com/questions/160565/…–
Pekka

Answers:


354
  1. 以管理员身份打开CMD提示符并执行以下命令:

    net stop was /y
    
  2. 打开“运行”对话框(按Win+ R),然后键入:services.msc

    然后搜索万维网发布服务(WWW-发布服务)和Web部署代理服务并将其停止。您还应该禁用它们。

  3. 使用XAMPP重新启动Apache :)

链接参考:https : //www.sitepoint.com/unblock-port-80-on-windows-run-apache/


15
我找不到万维网
Mohammad Kermani 2014年

4
另一种方式来获得访问服务-到Control Panel > System and Security > Administrative tools > Services
Al.G.

28
“ SQL Server报告服务(MSSQLSERVER)”也使用端口80,因此,如果在计算机上安装了MS-SQL服务器,则应将其停止。
johnkarka

1
知道为什么会发生这种情况吗?Windows是douchey,还是有人在入侵我的计算机?
Stan Quinn

5
我关闭了万维网发布服务,问题已解决!谢谢。
Mike Stratton

139

另一个非常简单的选择是简单地将Apache设置为在其他端口上侦听。这可以通过单击与“ Apache”模块相同的行上的“ Config”按钮,在下拉列表中选择“ httpd.conf”文件,然后将“ Listen 80”行更改为“ Listen 8080”来完成。保存文件并关闭它。

现在,它避开了端口80,而改用端口8080,没有问题。您唯一需要做的另一件事就是确保将localhost:8080浏览器放入浏览器中,以便浏览器知道在端口8080上查找。否则默认为端口80,并且找不到您的本地站点。

这还需要您重新启动Apache才能使更改生效。

瞧!固定。


我强制升级到Windows 10,它破坏了XAMP的安装,此答案已为我修复。谢谢!
伊恩

这对我也有用,除了我退出所有程序,单击xampp_start进入C:/xampp,然后将其更改为端口81。8080 对我不起作用。
user3553260 '16

1
我建议您的解决方案。就我而言,我需要开发ASP .NET应用程序和PHP。如果我停止, World Wide Web Publishing Service我将无法在我的ASP应用程序上工作。所以更改端口对我来说是解决方案。谢谢!
mihkov '16

3
在其他httpd.conf文件中,您可能还需要从“配置”>“服务和端口设置”​​更改端口。在“ Apache”选项卡上,将“主端口”值更改为新端口
Ian A

42

在httpd.conf中,更改以下行,然后重新启动应用程序:

  • Listen 80Listen 8080
  • ServerName localhost:80ServerName localhost:8080

当您按“开始”时,应用程序仍然可以说出诸如“端口80正在使用带有PID的“无法打开进程”的端口...“之类的错误,但仍然可以使用。

如果错误包括“端口443被PID无法打开的进程正在使用...”,则需要同时更改httpd.conf和httpd-ssl.conf。

在httpd-ssl.conf中更改:

  • Listen 443Listen 4433
  • <VirtualHost _default_:443><VirtualHost _default_:4433>
  • ServerName www.example.com:443ServerName www.example.com:4433

我最终不得不在我的问题上这样做。天哪!PID是由系统决定的。
mzimhle

41

本文摘录:

  1. 转到运行命令,然后输入:

    netstat -o -n -a | findstr 0.0:80

这里的最后一个数字是使用它的进程ID。这通常是IIS或其他与Web相关的服务,并且很容易解决,但是每隔很多次(通常在Google上看起来很象),它似乎是PID 4 –根据Windows Task Manager,它是NT内核,系统。考虑到杀死它不是很有帮助,这将导致蓝屏死亡。

占用端口80的东西与IIS或Web无关,它是SQL Server Reporting Services。关闭类似于SQL Server服务的所有内容,然后再次启动Apache,无需重新启动。

那么,侦听端口80的PID 4有问题吗?检查您的SQL服务并关闭它们。

更新 -@sangam的评论:

努力工作。就我而言,事实证明是SQL Server报告服务。我停止了所有已安装实例的服务,并且该服务正常运行(无需重新启动计算机)。


6
努力工作。就我而言,事实证明是SQL Server报告服务。我停止了所有已安装实例的服务,并且该服务正常运行(无需重新启动计算机)。谢谢。
sangam 2014年

1
非常有帮助..在此之前,我更改了Skype端口。并且关闭sql服务帮助了我很多。非常感谢
Waqar 2015年

2
最后,就我而言,它也是MSSQL
Tom Sarduy

1
停止为我工作的SQL Server Reporting Services(MSSQLSERVER)
扰民

1
谢谢,这是我的答案。
balron

34

因此,在尝试启动Apache服务时遇到了相同的问题,我想与您分享我的解决方案。以下是有关可能使用端口80的服务或程序的一些说明:

  1. Skype:默认情况下,Skype使用端口80/443。您可以从中更改此设置Tools -> Options -> Advanced -> Connections并禁用“将端口80和443用于附加的传入连接”复选框。

  2. IIS:IIS默认使用端口80,因此您需要将其关闭。您可以使用以下两个命令:net stop w3svcnet stop iisadmin

  3. SQL Server报告服务:您需要停止此服务,因为如果IIS未运行,它可能会占用端口80。转到本地服务并停止它。

  4. VMware Workstation:如果您正在运行VMware Workstation,则还需要停止VMware Workstation服务器-端口443。

这些选项非常适合我,我可以正常启动Apache服务。

另一个选项是从httpd.conf更改Apache侦听端口并设置另一个端口号。

希望此解决方案可以帮助任何再次遇到相同问题的人。


4
我的是SQL Server报告服务。谢谢!
Jayanga Kaushalya

停止w3svc解决了Windows 10上的问题。
Nox

您如何知道哪些服务正在使用端口80?(Windows 10)
克里斯·尼尔森

对我来说,这有效:“ IIS:IIS默认使用端口80,因此您需要将其关闭。您可以使用以下两个命令:net stop w3svc,net stop iisadmin”
Ravindra Singh

33

您可能需要停止“ Web部署代理服务”

按Win + R并键入 services.msc

右键单击Web Deployment Agent Service,然后选择“停止”

重新启动XAMPP

同样,双击“ Web Deployment Agent服务”后,可以将“启动”类型设置为“手动”,这样“ Web Deployment Agent服务”将不会自动启动


1
禁用该服务可能有任何问题吗?
穆罕默德·穆阿扎姆(Fuhammad Muazzam),2015年

6
  1. 打开任务管理器(Ctrl + Alt + Delete)。
  2. 转到“详细信息”标签。
  3. 按PID编号排序。
  4. 使用错误指示的PID号的结束进程。
  5. 重新启动XAMPP。

2
就我而言,是使用PID4的系统。因此,这可能很危险。
Fusion

为我工作,因为其他服务器使用了端口。并考虑
@Fusion

6

由于@johnkarka对这个问题有评论,因此SQL Server报告服务也使用此端口。停止此操作后,Apache正常运行。

  1. 转到“ SQL Server配置管理器”
  2. 单击“ SQL Server报告服务”并停止它

在此处输入图片说明

有趣的是,IIS在相同的配置下运行良好,但Apache无法运行,必须停止SQL Reporting服务才能使其在默认端口(80)上运行。


4

对我有用的是停止Internet信息服务(IIS)。如果您使用的是Windows 7,请单击“开始”按钮,然后在搜索框中键入“ iis”。单击“ Internet信息服务(IIS)管理器”。弹出窗口时,假设您没有选择任何图标,则只需单击右侧操作窗格上的“停止”即可。我的XAMPP Apache立即启动。希望这一切对您有用。


3

在Windows 10中,释放端口80:

就我而言,我从“搜索窗口”(在屏幕的左上角)中打开“服务”,然后停止所有SQL Server服务MSSQLSERVER,它又可以正常工作


3

我也遇到了这个问题,使用端口80停止服务没有帮助。我按照以下程序(在法国委员会上找到)解决了这个问题:

  1. 启动RegEdit
  2. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP
  3. 将“开始”的值更改为4(禁用)
  4. 重新启动电脑

不知道这如何影响其他服务,但是它可以永久解决该问题,到目前为止,我还没有发现任何问题。

使用Windows 10。


2

如果您的SQLServer Reporting Services在本地运行,则还需要停止该操作。


2

我遇到了同样的问题,但是就我而言,Apache已经在运行,由于某种原因,XAMPP配置工具没有显示该问题。在安装后第一次启动XAMPP之后发生了这种情况。在其他Apache实例崩溃之后,一切正常,端口80和443再次可用。

因此,在更改系统之前,请确保没有发生上述类似的明显事情。


2

“ SQL Server报告服务”在我的系统中引起了问题,将其停止后,Apache开始正常运行


2

我有同样的问题,我解决了问题,只是禁用了

服务中的“ BranchCache服务”

Windows以某种方式更新,该服务在启动时被触发,并使用80个端口。当您通过netstat检查时,您可以看到使用了该系统,但无法理解使用了哪个服务。


1
在每次Windows 10更新后禁用此服务可解决此问题
Matt

2

将主端口80更改为8080后,必须在控制面板中更新端口: 在此处输入图片说明 然后单击此处: 在此处输入图片说明 在此处: 在此处输入图片说明 然后保存并重新启动。


1

单击Xampp控制面板上的服务(文件名是services.msc,更多信息)。

首先,查找IIS(如果正在运行)。停止它(单击服务名称后,在左侧停止该服务选项。)。然后,这是主要问题,查找Web部署服务(尽管开头是Web部署,但名称不正确)。也停止此服务。再试一次,Apache应该可以工作。

如果您正在运行Skype,也可以退出,运行Apache,然后启动Skype


通常,Skype占用80端口,但比XAMPP聪明,一旦意识到80属于Apache服务器,Skype将使用其他端口
ytpillai

1

我遇到了同样的问题,当我安装MS WebMatrix时,IIS服务器被阻止运行XAMPP的端口80。我试图找到万维网发布服务并停止它,但在列表上找不到它。最好的方法是更改​​端口。

请参考此
链接参考。


1

对于使用ASP.NET,C#或具有SQL Server用户的用户,如果使用的是SQlServer或Visual Studio,则可能会遇到端口。您可能想做的最简单的事情是在Command> servies.msc上,然后找到SQl Server Reporting Service,然后将其停止。


0

如果服务是http.sys

您需要更改http.sys的绑定IP地址

netsh http添加iplisten ipaddress = ::

无需重启操作系统即可正常工作。


0

Web部署代理服务与WebMatrix一起部署,这是我麻烦的原因。它还可以与使用Microsoft的Web平台安装程序安装的其他应用程序一起分发

卸载解决了我的问题!


不,只需更改服务器侦听的端口即可。
rango



0

XAMPP-端口80正在使用PID 4的“无法打开过程”!12

在cmd任务列表中运行注释

并找到与此打开的窗口任务管理器相关的PID和进程名称

您也可以使用CTRL + ALT + DEL打开窗口任务管理器

现在单击“进程”选项卡,并使用PID查找名称,然后右键单击该名称并结束进程

现在再次重新启动xampp


0

我有同样的问题。经过一番谷歌搜索后到达此页面。由于我猜这个错误可能有多种原因,因此请听我的经验:

Xampp红线日志:

12:53:54 PM  [Apache] Problem detected!
12:53:54 PM  [Apache]   Port 443 in use by "Unable to open process" with PID 3908!
...

最终,事实证明我的php代码中包含以下代码行:

$res = file_get_contents("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");

这段代码的目的是从服务器中的某处获取php结果的镜像。但是,它只是陷入了获取自己内容的循环中!

我修复了代码:

$res = file_get_contents(str_replace("my_uri.php" , "mirror_uri.php" , "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));

然后,我重新启动了apache ...,该apache错误再也没有发生。

因此,有时在代码中搜索可能的暂停点是一种很好的方法。


0

默认情况下,在Ubuntu中,系统不允许您使用特权端口[0到1023],除了将端口指定为80外,您还需要使用sudo运行XAMP。


-1

我写这个是因为我找不到相同问题的答案。在我的情况下,PID为2484。

  1. 您必须使用此PID查找进程或服务:在Windows中打开cmd并输入:

    tasklist
    
  2. 在此列表中找到您的PID,并读取进程或服务的名称。

  3. 现在您可以使用任务管理器将其杀死

  4. 在流程列表中找到此名称

  5. 单击结束进程。

那是我的情况。可能您必须打开services.msc并使用PID停止Service。

在我的计算机xampp上,它工作正常:)

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.