在XAMPP试着启动Apache,但是却失败了。网上查找到了一些方法,比如更改80和443端口为其他(如800和4430),但是这有时候又会带来其他不便,如果你不想修改端口ID,那就可以接着看下。
这时候可以将问题定位为:80或443端口被其他进程占用
一开始以为是因为我以前单独安装了Apache,以及后来安装了phpstudy导致端口被占用的原因。但是我发现把原来的东西全删了,还是无法启动。。。
这时可以有两个方法可以看端口状态
#方法一:
打开XAMPP界面,点击右上角的Netstat,便可以查看相关信息。
上面可以看到httpd.exe在使用80和443端口以及对应的PID(port ID),这当然是没错的情况,因为这里是问题修复后截的图。
因为这种查询方法依赖XAMPP,所以我个人还是觉得第二种方法更通用
#方法二:
- Win+R
- 输入cmd,确定
- 进入cmd命令窗口
- 输入netstat -ano 查看机器所有端口占用情况
当然这样会输出很多信息,也不便于发现问题,所以要通过指定特定字符串查询
这里以443端口为栗子
输入
netstat -ano|findstr 443(或)netstat -ano|findstr “443”
从上图可以看到PID为7224的进程占用了443端口,
接下来我们要看看PID为7224对应的进程是什么?
输入命令
tasklist|findstr 7224
这里看到了是vmware-hostd.exe这个服务占用了443端口导致Apache无法启动
这是因为我的电脑既安装了VMware虚拟机软件,又安装了XAMPP。
···
这是因为vmware-hostd.exe默认是使用443号端口的,而它又是默认自动启动的。
我们知道,Apache 的 httpd 服务默认是使用80端口的,而 httpd-ssl 默认是使用443端口的。这就导致了443号端口的冲突。
解决方法:
Win+R,输入services.msc,点击确定进入“服务”,找到显示名称为“VMware Workstation Server”的服务,右键,属性,将启动类型改为手动,并停止该服务即可。
这种方法一般也不会影响VMware的正常使用。VMware Workstation Server 服务的描述信息为“Remote access service for registration and management of virtual machines.”,也就是说它与远程管理VMware有关。而我们一般也不会使用到VMvare的远程访问功能,所以这种方法基本没有影响。
方法引用于:
https://www.jianshu.com/p/a370ebdc0d44
问题修复后,XAMPP可以正常启动Apache服务。
打开浏览器,输入localhost就可以看到问题解决啦!