Windows XAMPP-端口80被“使用”;无法打开进程“;与PID 4!12

Windows XAMPP-端口80被“使用”;无法打开进程“;与PID 4!12,windows,apache,xampp,Windows,Apache,Xampp,两天来我一直在想如何解决这个问题。我对这类事情还不熟悉,所以如果有人能告诉我如何修复它,我将不胜感激 我尝试过删除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

两天来我一直在想如何解决这个问题。我对这类事情还不熟悉,所以如果有人能告诉我如何修复它,我将不胜感激

我尝试过删除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
  • 以管理员身份打开CMD提示符并执行以下命令:

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

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

  • 使用XAMPP再次启动Apache:)


  • 链接参考:

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

    按Win+R并键入services.msc

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

    重新启动XAMPP


    此外,双击“Web部署代理服务”后,您可以将启动类型设置为手动,这样“Web部署代理服务”将不会自动启动

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

    摘自:

  • 转到run命令并输入:

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

  • 这里的最后一个数字是使用它的进程ID。这通常是IIS或其他与web相关的服务,很容易解决,但每隔一段时间(通常在google上查看),它似乎是PID 4–根据Windows任务管理器,它是NT内核和系统。这对杀戮没有多大帮助,因为这会导致蓝屏死亡

    占用端口80的东西与IIS或web无关,它是SQL Server Reporting Services。关闭任何类似SQL Server服务的功能,然后重新启动Apache,无需重新启动

    那么PID 4监听端口80有问题吗?检查SQL服务并将其关闭

    更新- @sangam的评论:


    努力工作。在我的例子中,结果是SQL server报告 服务。我停止了所有已安装实例的服务,并且 它工作了(没有重新启动机器)


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

    现在,它避免使用端口80,而是使用端口8080,没有问题。您需要做的唯一额外的事情是确保在浏览器中放入
    localhost:8080
    ,以便浏览器知道如何查看端口8080。否则,它默认为端口80,无法找到您的本地站点

    这还需要重新启动Apache,以使更改生效


    瞧!已修复。

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

    如果该服务是http.sys

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

    netsh http add iplisten ipaddress=::


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

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


    因此,在对您的系统进行更改之前,请确保上述情况不会发生。

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


    卸载它解决了我的问题

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

  • Skype:默认情况下Skype使用端口80/443。您可以从
    Tools->Options->Advanced->Connections
    进行更改,并禁用复选框“将端口80和443用于其他传入连接”

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

  • SQL Server Reporting Service:您需要停止此服务,因为如果IIS未运行,它可能占用端口80。到当地的服务机构去阻止它

  • VMware Workstation:如果正在运行VMware Workstation,则需要停止VMware Workstation服务器-端口443

  • 这些选项对我非常有用,我可以毫无错误地启动Apache服务

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

    希望此解决方案能帮助再次面临相同问题的人。

    对我来说通常有效: -关闭Skype -关闭services.msc中显示的所有SQL Server进程
    -关闭服务中的万维网发布。msc通常在您在httpd.conf中停止IIS服务器和Skype后工作。更改以下行,然后重新启动应用程序:

    • Listen 80
      Listen 8080tasklist
      
      12:53:54 PM  [Apache] Problem detected!
      12:53:54 PM  [Apache]   Port 443 in use by "Unable to open process" with PID 3908!
      ...
      
      $res = file_get_contents("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
      
      $res = file_get_contents(str_replace("my_uri.php" , "mirror_uri.php" , "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));