最近在 Windows 中安装 XAMPP 时各种采坑,特此备忘解决方法供大家参考。
端口占用问题
因为端口占用而导致的报错应该是最常见的了,错误提示如下:
[Apache] This may be due to a blocked port, missing dependencies,
[Apache] improper privileges, a crash, or a shutdown by another method.
此时,解决方法有两种:
修改默认端口
Apache 会默认监听 80 和 443 端口,这些端口有可能被其他服务占用,也可能被一些杀毒软件/防火墙禁用,我们可以把这些端口修改成其他的。
首先,在 XAMPP 控制台的 Apache 中选择 Config
,然后选择 httpd.conf
把其中的 Listen 80
改为 Listen xxx
其他端口。
同理,选择 Config
> httpd-ssl.conf
,把其中的 Listen 443
改为 Listen xxx
其他端口:
关闭占用默认端口的服务
此外,我们还可以关闭那些占用默认端口的服务,但首先需要查看它们是被哪些服务占用了。
新版本的 XAMPP 控制台中提供了 Netstat 按钮可以直接查看当前运行的服务:
也可以在命令行中输入以下命令查看:
netstat -ano
之后我们可以得到占用这些端口的 PID 值,然后使用以下命令中止这些进程:
taskkill /pid ${pid} /F
其中,${pid}
为具体的 PID 值。
我在安装 XAMPP 之前安装了 VMWare,而它会启动一个自动启动的进程
vmware-host
并占用 443 端口。为了解决这类自启动的服务,我们可以在计算机管理 > 服务
中将其设为手动
或禁用
。
多次安装导致的问题
除了端口问题。原先已经安装过、且没有卸载完全的 XAMPP 也会导致很多问题,比如出现以下报错:
Apache Service detected with wrong path
[Apache] Change XAMPP Apache and Control Panel settings or
[Apache] Uninstall/disable the other service manually first
[Apache] Found Path: "C:\xampp\apache\bin\httpd.exe" -k runservice
[Apache] Expected Path: "d:\dev_tools\xampp\apache\bin\httpd.exe" -k runservice
比如这里,将 XAMPP 安装了两次,且在不同的位置。由于 XAMPP 安装过程中会设置一些环境变量并注册一些服务,所以,在对后安装的 XAMPP 启动时出现了问题。
此时,需要做如下几步:
打开注册表编辑器
使用快捷键 Win + R
并输入 regedit
进入注册表编辑器。
找到 Apache2.x 服务
其中,Apache2.x 为版本,x 根据 XAMPP 版本不同而不同,路径如下:
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > services > Apache2.x
修改 ImagePath
然后选择 ImagePath,并将其值修改为之前报错中 Expected Path
中的路径,如这里的报错为:
Expected Path: "d:\dev_tools\xampp\apache\bin\httpd.exe" -k runservice
则将其值修改为:
"d:\dev_tools\xampp\apache\bin\httpd.exe" -k runservice
注意,由于多次安装 XAMPP 导致的问题,还需要检查以下部分:
将 Apache 服务改为允许服务与桌面交互
在 控制面板 > 管理工具 > 服务
中,选择 Apache2.x 服务,并在 「登录」中勾选为「允许服务与桌面交互」。
查看 Apache 配置
由于先安装的 XAMPP 会对注册表和环境变量进行修改,后安装的 XAMPP 服务会直接使用它们。此后由于之前安装的 XAMPP 被删除,使得之后安装的那个也无法运行相应的服务。
这类问题常常导致 XAMPP 启动 Apache 的时候不报错,也无法启动,卡在以下提示中:
[Apache] Attempting to stop Apache service...
此时,我们可以打开 httpd.conf
(打开方法见上),查看 ServerRoot
是否仍是之前安装的目录,如果是,则需要将该文件中所有的原路径替换为新路径:
以下文件都需要做此替换:
httpd.conf
httpd-ssl.conf
httpd-xampp.conf
php.ini
查看 PHP 环境变量
之前已经提过,安装过程中还会设置 PHP 的环境变量。
我们需要打开系统环境变量,查看是否存在 PHP 原目录,如果有,则需要将其替换为新目录。
注意,部分企业版系统的环境变量按钮无法打开,也就不能像网上提到的那种方式进行环境变量的编辑,此时我们可以在命令行中输入以下指令查看查看环境变量:
Path
将 PHP 环境变量修改之后使用以下命令设置:
set Path=xxxx
Mysql 服务无法启动
MySQL 服务无法启动的问题可以仿照 Apache 逐一排查,检查项为:
查看 3306 端口占用问题;
查看注册表中 mysql 的 ImagePath 是否正确;
将 mysql 服务改为允许服务与桌面交互;
检查
my.ini
文件,查看是否存在路径错误,如socket
路径:
[client]
# password = your_password
port = 3306
socket = "D:/dev_tools/xampp/mysql/mysql.sock"
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。