必须同时修改监听端口、虚拟主机绑定和系统防火墙放行三处,缺一不可;仅改其一将导致连接超时或403错误。

能实现,但必须同时改三处:监听端口、虚拟主机绑定、系统防火墙放行。只改一两处,其他设备访问时大概率卡在连接超时或403错误。
Listen 指令必须显式添加新端口
Apache 默认只监听 80,哪怕你配置了 <VirtualHost *:8080>,没在 httpd.conf 里加 Listen 8080,请求根本进不来。
- 打开
/Applications/XAMPP/etc/httpd.conf(macOS)或X:\xampp\apache\conf\httpd.conf(Windows) - 找到已有
Listen 80行,在它下方新增一行:Listen 8080(或你需要的任意端口,如8081、8000) - 不要写成
Listen 192.168.1.100:8080——这会绑定到具体 IP,IP 变更后失效;0.0.0.0:8080也不必要,*:8080或直接8080即可 - 保存后重启 Apache,否则改动不生效
VirtualHost 必须用 *:端口号 显式声明
仅靠 DocumentRoot 和 ServerName 不足以让 Apache 把某端口流量路由到指定目录。必须用 <VirtualHost *:8080> 明确告诉它“这个端口归我管”。
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
- 确保
httpd.conf中已取消注释:Include conf/extra/httpd-vhosts.conf - 编辑
httpd-vhosts.conf,添加完整块(路径用绝对路径,结尾不加斜杠):<VirtualHost *:8080> DocumentRoot "/Applications/XAMPP/htdocs/myapp" ServerName localhost <Directory "/Applications/XAMPP/htdocs/myapp"> Require all granted AllowOverride All </Directory> </VirtualHost> -
ServerName填localhost就够用;如果想用自定义域名(如myapp.local),还需同步改系统hosts文件并映射到本机局域网 IP(不是127.0.0.1) - 多个端口就写多个
<VirtualHost *:xxx>块,互不干扰
防火墙必须放行对应端口,不是放行 httpd 进程
很多用户卡在这一步:Apache 配置全对,Mac/Windows 防火墙却默默丢弃所有来自局域网的 8080 请求,浏览器显示“连接已拒绝”或白屏。
- macOS:系统设置 → 网络 → 防火墙 → 防火墙选项 → 点「+」→ 手动添加
/Applications/XAMPP/xamppfiles/bin/httpd,或新建规则放行 TCP 端口8080 - Windows:控制面板 → Windows Defender 防火墙 → 允许应用通过防火墙 → 勾选
Apache HTTP Server;若无此条目,新建入站规则 → 选择「端口」→ TCP → 特定本地端口8080→ 允许连接 - 别信“关掉防火墙就行”——生产环境不现实;也别只放行
80端口而忽略你新加的8080 - 验证方式:在另一台局域网设备执行
telnet 192.168.1.100 8080(把 IP 换成你本机实际局域网 IP),通则说明端口可达
最容易被忽略的是 httpd-vhosts.conf 里每个 <Directory> 块都必须有 Require all granted,Apache 2.4+ 不再认 Order deny,allow,混用会导致启动失败且日志报 Invalid command 'Order'。端口、虚拟主机、防火墙,三者缺一不可,少一个都白配。

















