Apache服务器的端口80正在被PID 4(系统)使用并且无法停止[关闭]

Posted

技术标签:

【中文标题】Apache服务器的端口80正在被PID 4(系统)使用并且无法停止[关闭]【英文标题】:port 80 for apache server is in use by PID 4 (System) and cannot be stopped [closed] 【发布时间】:2016-09-06 07:31:30 【问题描述】:

我正在使用 xampp 在 80 端口启动 apache。但是,端口 80 由名称系统的 PID 4 占用。 我已经尝试过 Taskkill /F /PID 4 甚至使用管理员的权限来强制终止任务,但访问仍然被拒绝。 关于如何解决这个问题的任何想法(我不想更改 apache 的端口)

【问题讨论】:

当我使用 systeminternals tcp 监视器时,它表明系统进程拥有一个端口,这通常是因为 Windows 防火墙已打开,并且已经拦截了一些其他进程。当然,防火墙不会保持监听端口打开,除非其他一些应用程序打开了它。你没有启用IIS?只是猜测。 也许这会有所帮助:***.com/questions/1430141/… 我在华硕笔记本电脑上遇到了完全相同的问题,但是在运行 ampps 时,我的解决方案是停止侦听端口 80 的“华硕翻转服务”。但是我必须每个都这样做在 MS Services gui 工具中的时间,我还没有解决方案让翻转屏幕和 amps 一起运行。 【参考方案1】:

尝试运行 cmd:net stop http 会停止一些服务,然后你可以查看哪些服务使用了 80 端口

【讨论】:

【参考方案2】:

Nick W 我的华硕笔记本电脑也遇到了同样的问题,

在 Windows 中,您可以使用以下命令获取有关某些应用程序正在使用的端口的信息: netstat -ao netsh http 显示 urlacl

服务Asus Flip Service默认使用80端口,如果你停止服务它会释放端口,但是如果你把你的笔记本电脑变成平板模式屏幕不会旋转

所以如果你想使用 Asus Flip Service 并释放 port 80 你可以更改正在使用的 Web Service 端口,我将端口更改为 800

我所做的是转到安装应用程序的目录并更改配置文件

导演: C:\Program Files\ASUS\ASUS FlipLock

我更改的配置文件是:

FlipController.exe.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IWifiPowerServer" />
                <binding name="BasicHttpBinding_IFlipPTPServer" />
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:800/FilpWifiPowerManager.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWifiPowerServer"
                contract="WifiPowerServer.IWifiPowerServer" name="BasicHttpBinding_IWifiPowerServer" />
            <endpoint address="http://localhost:3712/FlipPTPServerManager.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IFlipPTPServer"
                contract="FlipPTPServer.IFlipPTPServer" name="BasicHttpBinding_IFlipPTPServer" />
        </client>
    </system.serviceModel>
</configuration>

ReStoreWifiPower.exe.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IWifiPowerServer" />
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:800/FilpWifiPowerManager.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWifiPowerServer"
                contract="WifiPowerServer.IWifiPowerServer" name="BasicHttpBinding_IWifiPowerServer" />
        </client>
    </system.serviceModel>
</configuration>

WifiPowerManager.exe.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <system.serviceModel>
    <services>
      <service name="WifiPowerManager.WifiPowerServer"
               behaviorConfiguration="HostedNetworkControlHostBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:800/FilpWifiPowerManager.svc"/>
          </baseAddresses>
        </host>
        <!-- this endpoint is exposed at the base address provided by host: http://localhost/FilpWifiPowerManager.svc  -->
        <!--endpoint address=""
                  binding="wsHttpBinding"
                  contract="HostedNetwrokController.IHostedNetworkOperation" /-->
        <endpoint  binding="basicHttpBinding"
                   contract="WifiPowerManager.IWifiPowerServer" >
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <!-- the mex endpoint is explosed at http://localhost/HostedNetworkController/service/mex -->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="HostedNetworkControlHostBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="False"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

【讨论】:

【参考方案3】:

进程 PID 4 是系统关键服务,您无法在不导致窗口完全停止的情况下停止它。

这些方法中的任何一种都应该可以解决问题:

在注册表中更改 http.sys 设置: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\UrlAclInfo 只需在所有必要的键中将http:+:80 更改为另一个端口号,然后重新启动计算机。

查找正在使用该端口的程序并使用其配置更改端口。通常 Microsoft SQL 报告工具使用 http.sys 侦听端口 80,有一个配置管理器允许您更改它。

在您的 Apache 应用程序中使用不同的端口。

【讨论】:

【参考方案4】:

当我遇到与您相同的问题时,我将 apache 端口更改为 81,默认情况下为 80,它可以正常工作并且我一直在使用。这里是如何做到这一点。启动xampp控制面板->单击apache的配置按钮->单击httpd.conf->查找端口号并将其更改为所需的端口->重新启动xampp->完成。

【讨论】:

【参考方案5】:

此服务通常使用80端口:“万维网发布服务”,在控制面板中打开“服务”并停止它

【讨论】:

【参考方案6】:

首先这样做:

在 Windows 任务管理器窗口中,转到“进程”选项卡。 在菜单中,单击查看 -> 选择列。 在选择进程页面列中,选中 PID(进程标识符)复选框。 点击确定。 勾选 Show Process from all users 在“进程”选项卡中,在 对应的列。

下一步:

停止PID对应的进程,启动XAMPP

我的猜测: IIS 或 WAMP 或 SQL Server Reporting Services (MSSQLSERVER) 或 WebMatrix 的“Web 部署代理服务”正在使用您的 80 端口

【讨论】:

进程名是ntoskrnl.exe 它似乎是主要的操作系统进程。我将尝试将端口更改为另一个端口。感谢您的帮助。 也许这些答案会有所帮助:***.com/questions/1430141/… 另外...安装了任何版本的 IIS、Visual Studio 或 Web 开发工具,或者在 Windows 功能下启用了 IIS?这可能会产生与您发现的结果相似的结果。

以上是关于Apache服务器的端口80正在被PID 4(系统)使用并且无法停止[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

安装Apache报80端口被占用 pid 4

转Windows10下80端口被PID为4的System占用导致Apache无法启动的分析与解决方案

怎样关闭占用80端口的pid为4的进程

启动phpstyle Apache的80端口被win7的System PID=4的进程占用的解决方法

怎么样关闭占用80端口的pid为4的进程

Windows10下80端口被PID为4的System占用导致Apache无法启动的分析