XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12
Posted
技术标签:
【中文标题】XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12【英文标题】:XAMPP - Port 80 in use by "Unable to open process" with PID 4! 12 【发布时间】:2016-07-30 13:08:30 【问题描述】:这两天我一直在想办法解决这个问题。我是这种事情的新手,所以如果有人能告诉我如何解决它,我将不胜感激。
我试过删除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
【问题讨论】:
我不想在这里输入它,不是每个人都知道关于计算机的一切。我在寻求帮助,我在谷歌上搜索过,但人们所说的一切都不起作用。 啊,现在这更有意义了。尝试petri.co.il/quickly_find_local_open_ports.htm 找出谁阻塞了 80 端口 @Pekka 我在停止穿尿布后不久就开始使用计算机,我现在也是一名程序员近十年了,我在谷歌上搜索了这个问题,谢天谢地,因为提问和回答这个问题的人使用这个网站,我很快就找到了答案。尽管这可能应该迁移到超级用户,但纠缠人们并让他们因为提出合理的问题而感到愚蠢,这与该社区的运作方式背道而驰。我建议你在生活中找到其他目标。 好吧,我不确定在您的搜索过程中这个结果是在哪里产生的,但在我的搜索中,感谢这个线程,这是列表的顶部。这正是这个社区努力成为的目标,一个高度可见且众所周知的此类东西的知识库。所以虽然我很欣赏你所说的,但实际上,感谢 OP 完成了任务。 @TechnikEmpire 但这个问题现在是 Google 排名靠前的结果这一事实是 问题的一部分, 而不是解决方案。在这个问题出现之前,谷歌的结果已经包含了很好的答案——我在发表评论之前检查过,我总是这样做。由于 SO 对 Google 的巨大影响力,这些答案现在可能已经被这个问题推倒了。另请参阅此处的讨论:meta.stackexchange.com/questions/160565/… 【参考方案1】:以管理员身份打开 CMD 提示符并执行以下命令:
net stop was /y
打开运行对话框(按Win+R),然后输入:services.msc
然后搜索万维网发布服务(WWW-Publishing Service)和Web部署代理服务并停止它们。您还应该禁用它们。
使用 XAMPP 再次启动 Apache :)
链接参考:https://www.sitepoint.com/unblock-port-80-on-windows-run-apache/
【讨论】:
我找不到万维网 访问服务的另一种方式 - 转至Control Panel > System and Security > Administrative tools > Services
"SQL Server Reporting Service(MSSQLSERVER)" 也使用端口 80,因此如果您的计算机上安装了 MS-SQL 服务器,则应该停止它。
知道为什么会发生这种情况吗?是 Windows 搞砸了,还是有人黑了我的机器?
我关闭了万维网发布服务,问题解决了!谢谢。【参考方案2】:
您可能需要停止“Web 部署代理服务”
按 Win+R 并输入 services.msc
右键单击Web部署代理服务并选择“停止”
重启 XAMPP
同样双击“Web Deployment Agent Service”后可以将Startup type设置为Manual,这样“Web Deployment Agent Service”就不会自动启动了
【讨论】:
禁用该服务是否有任何问题?【参考方案3】:对我有用的是停止 Internet 信息服务 (IIS)。如果您使用的是 Windows 7,请单击“开始”按钮,然后在搜索框中键入“iis”。单击“Internet 信息服务 (IIS) 管理器”。当窗口弹出时,假设您没有选择任何图标,您应该能够单击右侧操作窗格上的停止。我的 XAMPP Apache 立即启动。希望一切都对你有用。
【讨论】:
【参考方案4】:摘自此article:
转到你的运行命令并输入:
netstat -o -n -a | findstr 0.0:80
这里的最后一个数字是使用它的进程 ID。这通常是 IIS 或其他与网络相关的服务,并且很容易解决,但每隔一段时间(在谷歌上似乎经常四处寻找)它似乎是 PID 4——根据 Windows 任务管理器,它是 NT 内核和系统。考虑到杀死这将导致蓝屏死机,这不是很有帮助。
占用 80 端口的东西与 IIS 或 Web 无关,它是 SQL Server Reporting Services。关闭任何类似于 SQL Server 服务的东西,然后重新启动 Apache,无需重新启动。
那么 PID 4 监听端口 80 有问题吗?检查您的 SQL 服务并将其关闭。
更新 - 来自@sangam 的评论:
一气呵成。就我而言,结果是 SQL Server 报告 服务。我停止了所有已安装实例的服务,并且 它有效(无需重新启动机器)。
【讨论】:
一拍即合。就我而言,它原来是 SQL Server 报告服务。我停止了所有已安装实例的服务,并且它正常工作(无需重新启动机器)。谢谢。 非常有帮助.. 在此之前,我更改了 Skype 端口。关闭 sql 服务对我帮助很大。非常感谢 最后,就我而言,它也是 MSSQL 停止 SQL Server Reporting Services (MSSQLSERVER) 对我有用 谢谢,这是给我的答案。【参考方案5】:另一个非常简单的选择是简单地将 Apache 设置为侦听不同的端口。这可以通过单击“Apache”模块所在行的“Config”按钮来完成,在下拉列表中选择“httpd.conf”文件,然后将“Listen 80”行更改为“Listen 8080”。保存文件并关闭它。
现在它避开了端口 80 并使用端口 8080 代替,没有问题。您需要做的唯一额外的事情是确保在浏览器中输入localhost:8080
,以便浏览器知道在端口 8080 上查找。否则它默认为端口 80,并且不会找到您的本地站点。
这还需要您重新启动 Apache 才能使更改生效。
瞧!固定。
【讨论】:
我强制升级到 Windows 10 并且它破坏了我的 XAMP 安装,这个答案为我修复了它。谢谢! 这对我也有用,只是我退出了所有内容,点击了C:/xampp
中的 xampp_start,然后将其更改为端口 81。8080 对我不起作用。
我推荐您的解决方案。就我而言,我需要开发 ASP .NET 应用程序和 php。如果我停止World Wide Web Publishing Service
,我将无法处理我的 ASP 应用程序。所以改变端口对我来说是解决方案。谢谢!
除了 httpd.conf 文件,您可能还需要从“配置”>“服务和端口设置”更改端口。在“Apache”选项卡上,将“主端口”值更改为新端口【参考方案6】:
如果您在本地运行 SQLServer Reporting Services,那么您也需要停止它..
【讨论】:
【参考方案7】:如果服务是 http.sys
您需要更改http.sys的绑定IP地址
netsh http add iplisten ipaddress=::
无需重启操作系统即可正常工作。
【讨论】:
【参考方案8】:我遇到了同样的问题,但在我的情况下,Apache 已经在运行,并且由于某种原因 XAMPP 配置工具没有显示。它发生在我安装后第一次启动 XAMPP 之后。其他 Apache 实例崩溃后一切正常,端口 80 和 443 再次空闲。
因此,在对您的系统进行更改之前,请确保没有发生上述明显的事情。
【讨论】:
【参考方案9】:Web 部署代理服务是使用 WebMatrix 部署的,是我遇到麻烦的原因。它也可以与使用 Microsoft 的 Web 平台安装程序安装的其他应用程序一起分发。
卸载它解决了我的问题!
【讨论】:
不,只需更改服务器侦听的端口即可。【参考方案10】:所以我在尝试启动 Apache 服务时遇到了同样的问题,我想与您分享我的解决方案。 以下是有关可能使用端口 80 的服务或程序的一些说明:
Skype:Skype 默认使用端口 80/443。您可以从 Tools -> Options -> Advanced -> Connections
更改此设置并禁用复选框“使用端口 80 和 443 进行其他传入连接”。
IIS:IIS 默认使用端口 80,因此您需要将其关闭。您可以使用以下两个命令:net stop w3svc
、net stop iisadmin
。
SQL Server 报告服务:您需要停止此服务,因为如果 IIS 未运行,它可能占用端口 80。转到本地服务并停止它。
VMware Workstation:如果您正在运行 VMware Workstation,则需要停止 VMware Workstation 服务器 - 端口 443。
这些选项对我很有效,我可以毫无错误地启动 Apache 服务。
另一个选项是从 httpd.conf 更改 Apache 侦听端口并设置另一个端口号。
希望这个解决方案可以帮助任何再次面临同样问题的人。
【讨论】:
我的是 SQL Server 报告服务。谢谢! 停止 w3svc 解决了我在 Windows 10 上的问题。很好的答案。 如何知道哪些服务正在使用端口 80? (Windows 10) 对我来说这有效“IIS:IIS 默认使用端口 80,因此您需要将其关闭。您可以使用以下两个命令:net stop w3svc, net stop iisadmin”【参考方案11】:对我来说通常有效: - 关闭 Skype - 关闭 services.msc 中显示的所有 SQL Server 进程 - 在 services.msc 中关闭万维网发布
【讨论】:
【参考方案12】:它通常在您停止 IIS Server 和 Skype 后工作
【讨论】:
【参考方案13】:在 httpd.conf 中更改以下行,然后重新启动应用程序:
Listen 80
到 Listen 8080
ServerName localhost:80
到 ServerName localhost:8080
当您按“开始”时,应用程序仍然可以说您有一个错误,例如“端口 80 正在被带有 PID 的“无法打开进程”使用...”,但它仍然可以工作。
如果错误包括“端口 443 正在被带有 PID 的“无法打开进程”使用...”,您需要同时更改 httpd.conf 和 httpd-ssl.conf。
在 httpd-ssl.conf 中更改:
Listen 443
到 Listen 4433
<VirtualHost _default_:443>
到 <VirtualHost _default_:4433>
ServerName www.example.com:443
到 ServerName www.example.com:4433
【讨论】:
我最终不得不在我的问题上这样做。天哪!该PID是由系统。 确实如此。在我更改端口后,关闭 XAMPP 并重新打开它仍然显示红色错误消息,但一切正常。显然,XAMPP 在显示该错误消息之前不会检查端口是否已重新配置。它只检查端口是否正在使用。【参考方案14】:单击 Xampp 控制面板上的服务(文件名为 services.msc,额外信息)。
首先,查找 IIS,如果它正在运行。停止它(单击服务名称后在左侧停止此服务选项。)。然后,这是主要的问题,寻找 Web 部署服务(不是确切的名称,虽然它开头有 Web 部署。)。也停止此服务。再试一次,Apache 应该可以工作了。
如果您正在运行 Skype,也请退出,运行 Apache,然后启动 Skype
【讨论】:
通常,Skype 占用 80 端口,但比 XAMPP 更智能,一旦意识到 80 属于 Apache Server 就会使用不同的端口【参考方案15】:-
打开任务管理器 (Ctrl+Alt+Delete)。
转到“详细信息”选项卡。
按 PID 编号排序。
结束使用错误指示的 PID 号的进程。
重启 XAMPP。
【讨论】:
在我的例子中,使用 PID4 的是系统。因此这可能很危险。 为我工作,因为我的其他服务器使用了端口。并考虑@Fusion 的评论【参考方案16】:XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12
在cmd任务列表中运行注释
并找到与这个现在打开的窗口任务管理器相关的PID和进程名称
您也可以使用 CTRL+ALT+DEL 打开窗口任务管理器
现在单击进程选项卡并找到使用 PID 的名称并右键单击该名称并 结束进程
现在再次重新启动 xampp
【讨论】:
【参考方案17】:我写这个是因为我找不到同一个问题的答案。 在我的例子中,PID 是 2484。
您必须找到具有此 PID 的进程或服务: 打开 cmd(在 Windows 中)并写入:
tasklist
在此列表中找到您的 PID 并读取进程或服务的名称。
现在您可以使用任务管理器将其杀死
在进程列表中找到此名称
单击结束进程。
这就是我的情况。可能您必须打开 services.msc 并使用您的 PID 停止服务。
在我的电脑 xampp 上运行良好 :)
【讨论】:
【参考方案18】:在 Windows 10 中,释放 80 端口:
在我的例子中,我从“搜索窗口”(屏幕左上角)打开“服务”,然后停止所有 SQL 服务器服务 MSSQLSERVER,它又可以工作了
【讨论】:
【参考方案19】:我有同样的问题,当我安装 MS WebMatrix 时,IIS 服务器被阻止了运行 XAMPP 的端口 80。我试图找到万维网发布服务并停止它,但在列表中找不到它。最好的方法是更改端口。
请参考这里link ref.
【讨论】:
【参考方案20】:我也遇到了这个问题,使用端口 80 停止服务没有帮助。我按照这个程序解决了这个问题(在french board 上找到):
-
启动 RegEdit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
将“start”的值更改为 4(禁用)
重新启动计算机
不确定这会如何影响其他服务,但它永久解决了问题,到目前为止我没有发现任何问题。
使用 Windows 10。
【讨论】:
【参考方案21】:“SQL Server Reporting Service”导致我的系统出现问题,停止它后,Apache 开始正常工作
【讨论】:
【参考方案22】:我有同样的问题,我解决了问题,只是禁用了
“BranchCache 服务”在服务中。
windows 不知何故更新,此服务在启动时触发,并使用 80 个端口。当您通过 netstat 检查时,您可以看到系统使用了这个,但无法理解使用的是哪个服务。
【讨论】:
在每次 Windows 10 更新后禁用此服务可解决问题【参考方案23】:对于那些使用 ASP.NET、C# 或拥有 SQL Server 的用户,如果您使用 SQlServer 或 Visual Studio 您的端口可能会遇到。您可能想做的最简单的事情是在 Command> servies.msc 上找到 SQl Server Reporting Service 然后停止它。
【讨论】:
【参考方案24】:我有同样的问题。经过一番谷歌搜索到达此页面。由于我猜测这个错误可能有多种原因,所以听听我的经验:
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 错误再也没有发生过。
因此,有时在代码中搜索可能的停止点是一种不错的方法。
【讨论】:
【参考方案25】:@johnkarka 对此问题发表了评论,因此 SQL Server 报告服务也使用此端口。停止此操作后,Apache 启动正常。
-
转到“SQL Server 配置管理器”
点击“SQL Server Reporting Service”并停止它
有趣的是 IIS 在相同的配置下运行良好,但在 Apache 下却没有,必须停止 SQL 报告服务才能使其在默认端口 (80) 上运行。
【讨论】:
【参考方案26】:在 Ubuntu 中,系统默认不允许你占用特权端口 [0 到 1023],除了指定端口为 80,你需要使用 sudo 运行 XAMP。
【讨论】:
【参考方案27】:将主端口 80 更改为 8080 后,您必须在控制面板中更新端口: 然后点击这里: 和这里: 然后保存并重新启动。
【讨论】:
以上是关于XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12的主要内容,如果未能解决你的问题,请参考以下文章
XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12
XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12
XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12