XAMPP 和 VMWare 的冲突……

确切地说,是对 443 端口的占用。

21:51:59 [Apache] Attempting to start Apache app…
21:52:03 [Apache] Problem detected!
21:52:03 [Apache] Port 443 in use by “”C:\Program Files (x86)\VMware\VMware Workstation\vmware-hostd.exe” -u “C:\ProgramData\VMware\hostd\config.xml”” with PID 3304!
21:52:03 [Apache] Apache WILL NOT start without the configured ports free!
21:52:03 [Apache] You need to uninstall/disable/reconfigure the blocking application
21:52:03 [Apache] or reconfigure Apache and the Control Panel to listen on a different port

XAMPP 的原因给得很清楚,就是 VMWare 的 hostd 占用了 443 端口。

443 端口是 HTTPS 服务所使用的端口。所以第一反应是去编辑提示给出的 config.xml,希望能修改默认的 443 到其它指定端口上。结果发现不可行,Config.xml 中的内容很多,直接搜索 443 也搜不到。

于是转换思路,从 VMWare 的产品设计思想入手,为什么 VMWare 要给这么一个系统启动就会自启动的服务去占用 443 端口。按照这个思路,果然发现了原因:

image

VMWare 有一个功能是 Shared VM,就是基于网络的共享虚拟机,换成人话就是,真实机器不在你身边,架在真实机上的各虚拟机当然也不在你身边,但肯定又有操作虚拟机的需求。于是就提供了一个远程操作虚拟机的功能,这个功能当然需要加密连接,安全啊。

所以就占用了 443 端口。

当然,我是本机安装所以用不到这个功能,Disable 掉就行了。然后 XAMPP 就正确启动了。