必须先启用httpd-vhosts.conf,否则虚拟主机配置无效;需取消httpd.conf中include行的注释并重启apache;再在hosts文件添加127.0.0.1域名映射;最后在httpd-vhosts.conf中正确配置virtualhost块并验证语法。

必须先启用 httpd-vhosts.conf,否则所有虚拟主机配置都不生效——这是 90% 配置失败的根源。
确认 Apache 加载了虚拟主机配置文件
Apache 默认不读取 httpd-vhosts.conf,哪怕你写满了配置也没用。关键动作是打开 xampp\apache\conf\httpd.conf,搜索这一行:
Include conf/extra/httpd-vhosts.conf
确保它前面没有 #;如果有,删掉。保存后重启 Apache。不执行这步,后面全白搭。
常见错误现象:
- 访问自定义域名(如
mysite.local)直接跳转到 XAMPP 默认首页 - 修改了
httpd-vhosts.conf却完全没反应
在 hosts 文件中添加本地域名映射
Windows 不会自动把 mysite.local 解析成 127.0.0.1,必须手动告诉系统。以管理员身份打开:
C:\Windows\System32\drivers\etc\hosts
在末尾新增一行(每站一行):
127.0.0.1 mysite.local<br>127.0.0.1 blog.localhost<br>127.0.0.1 api.test
注意点:
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
- 必须用管理员权限保存,否则提示“拒绝访问”
- 不能用
https://或带端口,只写纯域名 - 改完后无需重启系统,但建议清 DNS 缓存:
ipconfig /flushdns
在 httpd-vhosts.conf 中为每个域名写独立 VirtualHost 块
打开 xampp\apache\conf\extra\httpd-vhosts.conf,删掉默认示例(整段以 # 开头的),然后按需添加。例如:
<virtualhost><br> DocumentRoot "D:/xampp/htdocs/mysite"<br> ServerName mysite.local<br><directory><br> Options Indexes FollowSymLinks<br> AllowOverride All<br> Require all granted<br></directory><br></virtualhost>
关键细节:
-
DocumentRoot必须是绝对路径,结尾不要斜杠("D:/xampp/htdocs/mysite"✅,"D:/xampp/htdocs/mysite/"❌) - 每个
<virtualhost></virtualhost>块必须完整闭合,漏掉会导致 Apache 启动失败 - 如果想保留
localhost访问原htdocs,必须显式加一个块:ServerName localhost,否则它会被匹配到第一个虚拟主机 - Apache 2.4+ 用
Require all granted,不是旧版的Allow from all
验证配置并排查启动失败
改完所有文件后,别急着点重启按钮。先做语法检查:
打开命令行,进入 xampp\apache\bin 目录,运行:
httpd -t
如果输出 Syntax OK,说明配置无硬错误;若报错,会明确指出哪行、哪个文件出问题(比如拼错 DocumentRoot、少引号、路径不存在等)。
容易被忽略的复杂点:
- 路径中含中文或空格时,
DocumentRoot和<directory></directory>的引号不能省,且建议用正斜杠/而非反斜杠\ - 多个站点共用同一 IP + 端口时,
ServerName必须与hosts里写的完全一致(大小写、点号、前后空格) - Apache 启动失败日志在
xampp\apache\logs\error.log,比界面红字更具体










