必须修改httpd.conf添加Listen端口并启用httpd-vhosts.conf,缺一导致403或启动失败;Listen需显式声明(如Listen 8081),VirtualHost块须完整配置ServerName、DocumentRoot及Directory权限。

能直接用,但必须改两处配置文件,漏掉任意一个都会 403 或 Apache 启动失败。
Listen 指令必须显式声明新端口
Apache 默认只监听 80(和 443),哪怕你在 httpd-vhosts.conf 里写了 *:8081,没在 httpd.conf 里加 Listen 8081,Apache 根本不会收这个端口的请求——浏览器会直接超时或报 ERR_CONNECTION_REFUSED。
- 打开
D: mpppacheconfhttpd.conf - 找到
Listen 80行,在它下面新增一行,比如:Listen 8081 - 避免使用已被占用的端口:运行
netstat -ano | findstr :8081确认无输出 - 多个端口就写多行,如:
Listen 8081、Listen 8082
httpd-vhosts.conf 必须启用且语法严格
默认情况下,httpd-vhosts.conf 是被注释掉的;即使启用了,VirtualHost 块里少写 ServerName 或路径含中文/空格,也会导致 Apache 无法加载配置。
- 先确认
httpd.conf中这行已取消注释:Include conf/extra/httpd-vhosts.conf - 在
D: mpppacheconfextrahttpd-vhosts.conf末尾添加完整块,例如:
<VirtualHost *:8081>
ServerName localhost:8081
DocumentRoot "D:/xampp/htdocs/myproject"
<Directory "D:/xampp/htdocs/myproject">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
-
DocumentRoot和Directory路径必须一致,且用正斜杠/或双反斜杠\,不能单反斜杠 -
ServerName推荐写成localhost:8081,否则访问http://localhost:8081可能 fallback 到第一个虚拟主机 - Windows 下路径含空格或中文?别试,换路径
重启前务必检查权限与默认站点冲突
改完配置不重启 Apache = 白改;但重启后打不开,大概率是权限或默认路由抢了先。
立即学习“PHP免费学习笔记(深入)”;
- 修改后必须点击 XAMPP Control Panel 的
Restart(不是 Stop+Start),确保配置重载 - 如果访问
http://localhost:8081返回 403 Forbidden,检查httpd.conf里约 220 行的全局Require all denied是否还生效——应注释掉或改为Require all granted - 如果
http://localhost(80 端口)也打不开了,说明你没配*:80的VirtualHost;补上这个块,否则 Apache 会拒绝所有未匹配的*:80请求 - 项目根目录下至少放一个
index.php或index.html,否则可能触发目录列表禁用而报 403
最容易被忽略的是:改了端口却忘了更新浏览器地址栏里的端口号,或者复制粘贴时把 Listen 8081 写成 Listen: 8081(多了冒号)。这类低级错误占本地调试失败的七成以上。



















