【问题标题】:XAMPP - Port 80 in use by "Unable to open process" with PID 4! 12XAMPP - PID 4 的“无法打开进程”正在使用端口 80! 12
【发布时间】:2015-10-28 23:13:25
【问题描述】:

这两天我一直在想办法解决这个问题。我是这种东西的新手,所以如果有人能告诉我如何解决它,我将不胜感激。

我试过删除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 对谷歌的巨大影响力,这些答案现在可能已经被这个问题推倒了。另请参阅此处的讨论:meta.stackexchange.com/questions/160565/…

标签: windows apache xampp


【解决方案1】:
  1. 以管理员身份打开 CMD 提示符并执行以下命令:

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

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

  3. 使用 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】:

另一个非常简单的选择是简单地将 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”选项卡上,将“主端口”值更改为新端口
【解决方案3】:

在 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是由系统。
  • 确实如此。在我更改端口后,关闭 XAMPP 并重新打开它仍然显示红色错误消息,但一切正常。显然,XAMPP 在显示该错误消息之前不会检查端口是否已重新配置。它只检查端口是否正在使用。
【解决方案4】:

摘自此article:

  1. 转到你的运行命令并输入:

    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 服务时遇到了同样的问题,我想与您分享我的解决方案。 以下是有关可能使用端口 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 侦听端口并设置另一个端口号。

希望这个解决方案可以帮助任何再次面临同样问题的人。

【讨论】:

  • 我的是 SQL Server 报告服务。谢谢!
  • 停止 w3svc 解决了我在 Windows 10 上的问题。很好的答案。
  • 如何知道哪些服务正在使用端口 80? (Windows 10)
  • 对我来说这有效“IIS:IIS 默认使用端口 80,因此您需要将其关闭。您可以使用以下两个命令:net stop w3svc, net stop iisadmin”
【解决方案6】:

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

按 Win+R 并输入 services.msc

右键单击Web部署代理服务并选择“停止”

重启 XAMPP

同样双击“Web Deployment Agent Service”后可以将Startup type设置为Manual,这样“Web Deployment Agent Service”就不会自动启动了

【讨论】:

  • 禁用该服务是否有任何问题?
【解决方案7】:

@johnkarka 对此问题发表了评论,因此 SQL Server 报告服务也使用此端口。停止此操作后,Apache 启动正常。

  1. 转到“SQL Server 配置管理器”
  2. 点击“SQL Server Reporting Service”并停止它

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

【讨论】:

    【解决方案8】:
    1. 打开任务管理器 (Ctrl+Alt+Delete)。
    2. 转到“详细信息”选项卡。
    3. 按 PID 编号排序。
    4. 结束正在使用错误指示的 PID 号的进程。
    5. 重启 XAMPP。

    【讨论】:

    • 在我的例子中,使用 PID4 的是系统。因此这可能很危险。
    • 为我工作,因为我的其他服务器使用了端口。并考虑@Fusion 的评论
    【解决方案9】:

    将主端口 80 更改为 8080 后,您必须在控制面板中更新端口: 然后点击这里: 和这里: 然后保存并重新启动。

    【讨论】:

      【解决方案10】:

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

      【讨论】:

        【解决方案11】:

        在 Windows 10 中,释放 80 端口:

        在我的例子中,我从“搜索窗口”(屏幕左上角)打开“服务”,然后停止所有 SQL 服务器服务 MSSQLSERVER,它又可以工作了

        【讨论】:

          【解决方案12】:

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

          1. 启动 RegEdit
          2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
          3. 将“start”的值更改为 4(禁用)
          4. 重新启动计算机

          不确定这会如何影响其他服务,但它永久解决了问题,到目前为止我没有发现任何问题。

          使用 Windows 10。

          【讨论】:

            【解决方案13】:

            如果您在本地运行 SQLServer Reporting Services,那么您也需要停止它..

            【讨论】:

              【解决方案14】:

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

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

              【讨论】:

                【解决方案15】:

                “SQL Server Reporting Service”导致我的系统出现问题,停止它后,Apache 开始正常工作

                【讨论】:

                  【解决方案16】:

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

                  “BranchCache 服务”在服务中。

                  windows 不知何故更新,此服务在启动时触发,并使用 80 个端口。当您通过 netstat 检查时,您可以看到系统使用了这个,但无法理解使用的是哪个服务。

                  【讨论】:

                  • 在每次 Windows 10 更新后禁用此服务可解决问题
                  【解决方案17】:

                  单击 Xampp 控制面板上的服务(文件名为 services.msc,额外信息)。

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

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

                  【讨论】:

                  • 通常,Skype 占用 80 端口,但比 XAMPP 更智能,一旦意识到 80 属于 Apache Server 就会使用不同的端口
                  【解决方案18】:

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

                  请参考这里
                  link ref.

                  【讨论】:

                    【解决方案19】:

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

                    【讨论】:

                      【解决方案20】:

                      如果服务是 http.sys

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

                      netsh http add iplisten ipaddress=::

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

                      【讨论】:

                        【解决方案21】:

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

                        卸载它解决了我的问题!

                        【讨论】:

                        • 不,只需更改服务器侦听的端口即可。
                        【解决方案22】:

                        对我来说通常有效: - 关闭 Skype - 关闭 services.msc 中显示的所有 SQL Server 进程 - 在 services.msc 中关闭万维网发布

                        【讨论】:

                          【解决方案23】:

                          它通常在您停止 IIS Server 和 Skype 后工作

                          【讨论】:

                            【解决方案24】:

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

                            在cmd任务列表中运行注释

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

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

                            现在单击进程选项卡并找到使用 PID 的名称并右键单击该名称并 结束进程

                            现在再次重新启动 xampp

                            【讨论】:

                              【解决方案25】:

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

                              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 错误再也没有发生过。

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

                              【讨论】:

                                【解决方案26】:

                                在 Ubuntu 中,系统默认不允许你占用特权端口 [0 到 1023],除了指定端口为 80,你需要使用 sudo 运行 XAMP。

                                【讨论】:

                                  【解决方案27】:

                                  我写这个是因为我找不到同一个问题的答案。 在我的例子中,PID 是 2484。

                                  1. 您必须找到具有此 PID 的进程或服务: 打开 cmd(在 Windows 中)并写入:

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

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

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

                                  5. 单击结束进程。

                                  这就是我的情况。可能您必须打开 services.msc 并使用您的 PID 停止服务。

                                  在我的电脑 xampp 上运行良好 :)

                                  【讨论】:

                                    猜你喜欢
                                    • 2021-09-23
                                    • 2014-06-12
                                    • 2019-03-11
                                    • 2013-07-28
                                    • 2010-11-28
                                    相关资源
                                    最近更新 更多