apache 2.4内网访问403需改三处:①httpd.conf顶部正确配置listen(如listen 8080);②httpd-vhosts.conf中virtualhost端口与listen严格匹配,并启用include;③块中将require local改为require all granted且allowoverride all。

能用,但必须改三处配置且绕开 Apache 2.4 的权限限制,否则内网访问直接 403。
Listen 指令要加在 httpd.conf 顶部,不能只写端口号
Apache 要明确知道它该监听哪些端口,Listen 必须出现在 httpd.conf 文件靠前位置(通常在 ServerRoot 下方),格式严格为 Listen 8080(无冒号、无空格)。常见错误是写成 Listen: 8080 或漏掉空格,导致 Apache 启动失败或静默忽略。
如果你要同时支持本地管理(如 XAMPP 控制台)和多个测试站点,建议保留默认 Listen 80,再追加:
Listen 8080Listen 8081-
Listen 9888(避免用 8000 以下端口,避开系统保留端口冲突)
httpd-vhosts.conf 中的 VirtualHost 必须带端口且匹配 Listen
每个站点对应一个 <virtualhost></virtualhost> 块,* 表示监听所有 IP,但端口号必须和 Listen 完全一致。如果写了 <virtualhost></virtualhost> 却没在 httpd.conf 里加 Listen 8080,请求会根本进不来。
关键点不止是路径,还有权限控制 —— Apache 2.4 默认拒绝所有外部访问:
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
- 必须把
<directory></directory>块里的Require local改成Require all granted - 不能只注释掉
Require local,不加新行;必须显式启用放行 -
AllowOverride All要打开,否则 .htaccess 不生效(尤其 WordPress 等依赖重写规则的程序)
内网访问失败大概率卡在 hosts 或防火墙
局域网其他设备访问 http://192.168.x.x:8080 报错,先排除这两层:
- Windows 防火墙默认阻止入站 HTTP 流量:进「高级安全 Windows 防火墙」→「入站规则」→ 新建规则 → 端口 → TCP → 特定本地端口(如
8080,8081,9888)→ 允许连接 - hosts 文件只影响本机域名解析,对内网设备无效;其他设备必须直接用主机 IP 访问,不能指望它们也配了
www.a.com指向你电脑 - 确认本机能用
http://localhost:8080正常访问,再测内网;否则问题不在网络层,在 Apache 配置本身
重启 Apache 前必须检查 Include conf/extra/httpd-vhosts.conf 是否启用
这是最容易被跳过的一步。打开 httpd.conf,搜索 httpd-vhosts.conf,确保这行前面没有 #:
Include conf/extra/httpd-vhosts.conf
如果被注释,虚拟主机配置完全不加载,所有端口都只会走默认 DocumentRoot(即 htdocs),无论你怎么配 VirtualHost 都没用。改完后务必用 XAMPP 控制面板「Restart」,不是 Stop + Start —— Restart 才会完整重载配置。
多端口发布真正麻烦的从来不是监听或路由,而是 Apache 2.4 引入的 Require 权限模型和 Windows 防火墙的双重拦截,这两处不亲手改,光调端口永远只能在本机跑通。










