局域网设备无法访问xampp站点,主因是apache默认仅监听127.0.0.1且防火墙拦截;需将httpd.conf中listen改为0.0.0.0:80、所有directory块内require local替换为require all granted,并在系统防火墙中放行apache进程或对应端口。

局域网其他设备打不开你的 XAMPP 站点,90% 是因为 Apache 没监听所有地址 + 系统防火墙拦住了端口。光改 httpd.conf 不开防火墙,等于把门打开却锁着院子大门。
Listen 0.0.0.0:80 必须写对,不能写成 127.0.0.1 或具体 IP
Apache 默认只绑 127.0.0.1:80,外部设备根本连不上。必须改成监听所有 IPv4 接口:
- 打开
/Applications/XAMPP/etc/httpd.conf(macOS)或X:\xampp\apache\conf\httpd.conf(Windows) - 找到
Listen 80,改成Listen 0.0.0.0:80(若要用 8080 端口,则写Listen 0.0.0.0:8080) - 顺手注释掉或删掉
ServerName localhost:80—— Apache 2.4+ 不强制要求,留着反而可能干扰虚拟主机匹配 - 别写
Listen 192.168.1.100:80:IP 一变(比如换 Wi-Fi、插网线)、或多网卡(Wi-Fi + 以太网),服务就失联
Require all granted 是 Apache 2.4+ 的关键权限开关
Apache 2.4 起彻底弃用 Order deny,allow,用 Require 控制访问。默认的 Require local 会直接拒掉所有非本机请求,返回 403 错误:
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中定位主<directory></directory>(macOS)或<directory></directory>(Windows)块 - 把里面的
Require local替换为Require all granted - 如果用了虚拟主机(
httpd-vhosts.conf),每个<virtualhost></virtualhost>内部的<directory></directory>块也得单独加这行 —— 少一处,对应站点就 403 - 别混用旧语法:
Order deny,allow和Allow from all在 XAMPP 7.x+ 里会报Invalid command 'Order',Apache 启动失败
Windows/macOS 防火墙必须放行 httpd 进程或端口
即使 Apache 配置全对,系统防火墙也会静默丢包。浏览器显示“无法连接”或“连接已重置”,大概率是它在拦:
-
Windows:进「控制面板 > Windows Defender 防火墙 > 允许应用通过防火墙」→ 勾选
Apache HTTP Server;若没出现,点「更改设置」→「允许其他应用」→ 手动添加X:\xampp\apache\bin\httpd.exe -
macOS:「系统设置 > 网络 > 防火墙 > 防火墙选项」→ 勾选
Apache HTTP Server;若没列出,点「+」→ 添加/Applications/XAMPP/xamppfiles/bin/httpd - Linux(如 CentOS):运行
firewall-cmd --permanent --add-port=80/tcp+firewall-cmd --reload;或直接关防火墙测试(systemctl stop firewalld)
验证时必须用局域网 IP,不是 localhost
测试是否成功,必须在另一台设备(手机、同事电脑)上输入你本机的局域网 IP,而不是 localhost 或 127.0.0.1:
- Windows 查 IP:命令行运行
ipconfig,找「IPv4 地址」(如192.168.1.100) - macOS 查 IP:终端运行
ifconfig | grep "inet " | grep -v 127.0.0.1,取第一个非本地地址 - 浏览器访问
http://192.168.1.100(或带端口如http://192.168.1.100:8080) - 如果页面加载失败,先检查 Apache 是否运行中,再查防火墙日志或临时关闭防火墙快速定位
最容易被忽略的是虚拟主机配置里的 <directory></directory> 权限 —— 主配置改了,httpd-vhosts.conf 里忘了改,照样 403。另外,Mac 用户常忽略系统防火墙没放行 httpd 二进制文件本身,只放了端口,结果还是不通。










