You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10 2018年4月更新致Apache24无法启动,求故障原因

故障原因及解决方案分析

我之前帮朋友排查过几乎一模一样的Windows更新后Apache端口绑定失败的问题,结合你的描述,核心原因是Windows 10 2018年4月更新后,系统级的HTTP.sys服务(或关联的IIS默认站点)抢占了80端口——哪怕你指定绑定127.0.0.1:80也没用,因为HTTP.sys是系统层面的监听服务,会覆盖所有IP地址的80端口占用,包括回环地址。

更新前你的Apache能正常运行,是因为当时这个系统服务没有启用,或者没有抢占80端口的需求,而这次更新可能默认开启了依赖HTTP.sys的功能(比如Windows Update后台服务、IIS默认站点自动激活等)。

验证端口占用的步骤

先确认到底是什么进程在占用80端口:

  • 右键开始菜单,选择「Windows PowerShell(管理员)」或「命令提示符(管理员)」
  • 运行命令:netstat -ano | findstr ":80",你会看到类似TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1234的输出,最后一串数字就是占用端口的进程PID
  • 接着运行:tasklist /fi "PID eq 1234"(把1234换成你找到的PID),就能看到具体是哪个进程在占用——大概率是svchost.exe,对应的服务是HTTP或者World Wide Web Publishing Service(IIS的服务)。

解决方法

方法1:停止占用端口的系统服务

  • 如果是IIS的World Wide Web Publishing Service:
    1. 按Win+R输入services.msc打开服务管理器
    2. 找到「World Wide Web Publishing Service」,右键选择「停止」
    3. 双击该服务,把启动类型改成「手动」,避免下次开机自动抢占端口
  • 如果是系统的HTTP服务:
    1. 在管理员命令提示符里运行:net stop http,系统会提示依赖的服务也会停止,输入Y确认
    2. 要彻底禁用的话,运行:sc config http start= disabled(注意start=后面必须加空格)

    注意:禁用HTTP服务可能影响部分系统功能(比如Windows Update、远程桌面的Web访问),如果之后出现相关问题,再把启动类型改回「自动」即可。

方法2:修改Apache监听端口

如果不想改动系统服务,最简单的方式是换个未被占用的端口:

  1. 打开Apache的httpd.conf配置文件
  2. 把Listen 127.0.0.1:80改成Listen 127.0.0.1:8080(或者8000、8888这类常用备用端口)
  3. 保存配置后重启Apache,之后访问你的站点需要加上端口号,比如http://localhost:8080

方法3:给Apache预留80端口(保留80端口访问)

如果坚持要用80端口,可以让HTTP.sys把回环地址的80端口预留出来给Apache:

  1. 打开管理员命令提示符
  2. 运行:netsh http add urlacl url=http://127.0.0.1:80/ user=Everyone
  3. 重启Apache,此时就能正常绑定127.0.0.1:80了,系统服务不会再抢占这个端口。

内容的提问来源于stack exchange,提问作者Carl Barrett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:32:10