根本原因是Apache默认只监听127.0.0.1且拒绝外部请求;需修改Listen为0.0.0.0:80、将Require local改为Require all granted,并在系统防火墙中放行对应端口。

能访问,但默认配置下局域网设备连不上——根本原因是 Apache 默认只监听 127.0.0.1,且权限策略拒绝外部请求。改两处配置 + 关一个防火墙开关,基本就能通。
确认 Apache 正在监听所有接口(Listen 和 ServerName)
Apache 必须明确告诉自己“别只听 localhost”,否则其他设备发来的请求直接被丢弃。打开 /Applications/XAMPP/etc/httpd.conf(macOS)或 X:\xampp\apache\conf\httpd.conf(Windows),找到这两行:
-
Listen 80→ 改成Listen 0.0.0.0:80(或你自定义的端口,如Listen 0.0.0.0:8080) -
ServerName localhost:80→ 改成ServerName 0.0.0.0:80或直接注释掉(新版 Apache 不强制要求,留着反而可能干扰虚拟主机)
注意:不要写成 Listen 192.168.1.100:80 —— 这会绑定到特定 IP,一旦 IP 变更或有多网卡就失效;0.0.0.0 才是“监听所有可用地址”的正确写法。
放开目录访问权限(Require all granted 是关键)
Apache 2.4+ 默认用 Require local 拒绝所有非本机请求。这个限制分布在两个地方,都得改:
- 主配置里
块内,把Require local换成Require all granted - 虚拟主机配置(
httpd-vhosts.conf)中每个块里,同样把Require local换成Require all granted
别信老教程里的 Order deny,allow + Allow from all —— 那是 Apache 2.2 的语法,XAMPP 7.x 起全用 2.4+,混用会导致 Apache 启动失败,错误日志里会报 Invalid command 'Order'。
电脑手机电子配件电子商城网站模板是一款提供手机、手表、电脑等电子配件和设备的电子商城宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
Mac / Windows 防火墙必须放行对应端口
即使 Apache 配置全对,系统防火墙也会默默拦截外来连接。不关防火墙,只做配置等于白忙:
- macOS:打开「系统设置 > 网络 > 防火墙 > 防火墙选项」,勾选
Apache HTTP Server;如果没出现,点「+」手动添加/Applications/XAMPP/xamppfiles/bin/httpd - Windows:控制面板 > Windows Defender 防火墙 > 允许应用通过防火墙 > 勾选
Apache HTTP Server;若无此条目,新建入站规则 → 选择「端口」→ TCP → 特定本地端口(如80或8080)→ 允许连接
验证是否生效:在另一台局域网设备浏览器输入 http://192.168.1.100(换成你 Mac/PC 的实际局域网 IP),不是 localhost,也不是 127.0.0.1。
域名访问要额外配 hosts 和虚拟主机(ServerName 和本地 DNS)
想用 myproject.local 这种域名访问,光配 Apache 不够,其他设备不知道这名字指向哪台机器:
- 在你开发机上,确保虚拟主机已启用:
Include /Applications/XAMPP/etc/extra/httpd-vhosts.conf在httpd.conf中未被注释 - 在其他设备(比如手机、同事电脑)的
/etc/hosts(macOS/Linux)或C:\Windows\System32\drivers\etc\hosts(Windows)末尾加一行:192.168.1.100 myproject.local - Apache 虚拟主机里
ServerName必须和 hosts 里写的完全一致(包括大小写和点号),否则匹配失败返回默认站点或 404
很多人卡在这一步:以为配了虚拟主机就完事,忘了其他设备根本没有解析那个域名的能力——它不是公网 DNS,只是你手动塞进本地 hosts 的一条静态映射。










