apache修改listen端口必须设为listen 0.0.0.0:8080(而非仅listen 8080),否则默认仅监听回环地址,局域网无法访问;还需同步更新虚拟主机配置、require all granted权限、防火墙放行及重启服务。

修改 Apache 的 Listen 配置必须用 0.0.0.0:端口号
只改 Listen 80 为 Listen 8080 是不够的——Apache 默认仍只监听本地回环地址。必须显式绑定到所有接口,否则局域网设备连不上。
打开 %xampp%\apache\conf\httpd.conf(Windows)或 /opt/lampp/etc/httpd.conf(Linux/macOS),找到 Listen 行:
- 改成
Listen 0.0.0.0:8080(把8080换成你想要的端口) - 不要写成
Listen 192.168.1.100:8080—— IP 变更后就失效 - 如果该行被注释(前面有
#),必须取消注释 - 改完不重启 Apache,配置完全不生效
Require all granted 是 Apache 2.4+ 的访问控制关键
旧教程里的 Allow from all 或 Order deny,allow 在 XAMPP 7.x+ 中会直接导致 Apache 启动失败,错误日志里报 Invalid command 'Order'。
需要在两处同时修改:
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 - 虚拟主机块(
httpd-vhosts.conf)中每个<directory></directory>里的Require local→ 同样改为Require all granted - 别漏掉
httpd-xampp.conf文件里对 phpMyAdmin 和 XAMPP 控制页的Require local,也得一并替换
系统防火墙必须放行你设的端口,不是默认 80
很多人改完 Apache 配置却连不上,实际是 Windows Defender 防火墙、macOS 防火墙或 Linux firewalld 拦了新端口。
- Windows:进「允许应用通过防火墙」→ 找
Apache HTTP Server,勾选「专用」和「公用」;若没出现,新建入站规则 → TCP → 特定端口 → 填你设的端口(如8080) - macOS:系统设置 → 网络 → 防火墙 → 防火墙选项 → 添加
/Applications/XAMPP/xamppfiles/bin/httpd,或手动开放端口 - Linux(CentOS/RHEL):
sudo firewall-cmd --add-port=8080/tcp --permanent && sudo firewall-cmd --reload
别忘了检查 XAMPP 自带的启动脚本是否硬编码端口
某些老版本 XAMPP(尤其 CentOS 上的定制版)会在 /opt/lampp/lampp 启动脚本里写死端口检测逻辑,比如:
if testport 8080; then ...
如果你改了端口但 Apache 总是启动失败或状态显示异常,搜一下这个脚本里有没有类似 testport 的判断,把硬编码的端口号同步改掉。
最易忽略的是:改完所有配置后,必须分别重启 Apache 和 MySQL(如果涉及数据库远程),且每次改都得验证——用另一台设备执行 telnet 192.168.x.x 8080,能通才说明端口层真正放开。










