Apache启动失败因443端口被占,需四步解决:一、用netstat和tasklist查PID并终止进程;二、修改httpd-ssl.conf中Listen和VirtualHost端口号;三、在services.msc中禁用VMware Hostd、IIS等服务;四、关闭Skype端口劫持或调整其设置。

Apache 启动失败,报 Port 443 busy,说明 HTTPS 默认端口被其他进程占了——不是配置错了,是系统里真有别的程序在监听 443。
怎么快速查出谁在用 443 端口
别猜,直接命令行定位。以管理员身份打开 PowerShell 或 CMD:
- 运行
netstat -ano | findstr :443,看输出最后一列的 PID(比如1234) - 再运行
tasklist /FI "PID eq 1234"(把1234换成你查到的实际数字),就能看到进程名,常见的是:vmware-hostd.exe、Skype.exe、svchost.exe(背后可能是 IIS 或 Windows HTTP 服务) - 如果 PID 是
4,基本就是System在用,通常由HTTP.sys驱动支撑,背后服务包括 World Wide Web Publishing Service、Web Management Service 等
VMware 占着 443 怎么办
vmware-hostd.exe 默认监听 443 是为了提供本地 Web UI(如 https://localhost:8697),但它和 Apache 的 HTTPS 冲突。
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 最干净:进
services.msc,找到VMware Hostd,右键 → 属性 → 启动类型设为「禁用」,然后点「停止」 - 想保留 Web 管理:编辑
C:\ProgramData\VMware\hostd\config.xml,把<sslport>443</sslport>改成<sslport>8443</sslport>,保存后重启该服务 - 改完记得试一下新地址能否访问,比如
https://localhost:8443;别漏掉ProgramData是隐藏目录,需要显示隐藏文件才能进去
Skype 或 IIS 占用 443 怎么处理
旧版 Skype(7.x 及更早)默认勾选「使用 80 和 443 作为替代传入连接端口」,哪怕你没开代理也会偷偷绑定。
- Skype:打开 → 工具 → 选项 → 高级 → 连接 → 取消勾选那项 → 保存 → 右下角托盘图标右键 → 「退出」(只关窗口不生效)
- IIS 类服务:在
services.msc中停用World Wide Web Publishing Service、Web Management Service;或通过「控制面板 → 启用或关闭 Windows 功能」彻底关掉 Internet Information Services - 如果是
svchost.exe占用且 PID 不是 4,可用netsh http show servicestate查具体是哪个服务注册了 443
实在不想动其他软件?改 Apache 的 443 端口
可以,但必须改对两处,否则 HTTPS 访问会失败或跳转异常。
- 编辑
C:\xampp\apache\conf\extra\httpd-ssl.conf,把所有Listen 443改成Listen 8443(或其他空闲端口) - 同时改同一文件里
<VirtualHost _default_:443>为<VirtualHost _default_:8443> - 改完重启 Apache;之后用
https://localhost:8443访问,浏览器可能报证书警告(因自签名证书绑定的是localhost,不是新端口),点「高级 → 继续访问」即可 - 注意:别只改
httpd.conf里的Listen 80,它管 HTTP,和这个 443 报错无关
真正麻烦的不是改哪几行,而是改完忘了同步更新 VirtualHost 块里的端口号——这是最常被跳过的一步,结果 Apache 能启动,但 HTTPS 请求全 404。

















