VMware 占用443端口导致 Apache 无法启动
在笔记本上安装 VMware Workstation 之后,发现 Apache httpd 服务无法启动。错误日志如下:
09:14:35 [Apache] Attempting to start Apache app...
09:14:36 [Apache] Status change detected: running
09:14:39 [Apache] Status change detected: stopped
09:14:39 [Apache] Error: Apache shutdown unexpectedly.
09:14:39 [Apache] This may be due to a blocked port, missing dependencies,
09:14:39 [Apache] improper privileges, a crash, or a shutdown by another method.
09:14:39 [Apache] Press the Logs button to view error logs and check
09:14:39 [Apache] the Windows Event Viewer for more clues
09:14:39 [Apache] If you need more help, copy and post this
09:14:39 [Apache] entire log window on the forums
Google 搜索关键词 Apache shutdown unexpectedly
,看到 stackoverflow 上的一个讨论后,基本确定问题是 Apache 的某个默认端口被其他进程占用。Apache 的默认端口包括80
和443
,可以在cmd中查看这两个端口的占用情况,输入命令:
netstat -aon
可以看到443端口被8584进程占用(ipv4和ipv6都有):
Proto Local Address Foreign Address State PID
...
TCP 127.0.0.1:443 127.0.0.1:1222 ESTABLISHED 8584
TCP 127.0.0.1:443 127.0.0.1:10534 ESTABLISHED 8584
...
TCP [::]:443 [::]:0 LISTENING 8584
...
给任务管理器加上进程ID(PID)这一列,可以看到,8584进程为 vmware-hostd.exe
。
这个问题可以通过修改 Apache 的监听端口来解决,443 是 Apache 默认的 SSL 端口。打开httpd-ssl.conf
,找到#Listen 443
这一行,将443
改为其他端口号,如7331
,重启httpd服务,done!