xampp配置多端口需同步完成三步:在httpd.conf中添加listen指令并启用httpd-vhosts.conf;在httpd-vhosts.conf中为每个端口完整配置virtualhost,含servername、documentroot及嵌套directory块并设require all granted;最后检查端口占用、防火墙放行并重启apache。

XAMPP 能配多端口,但默认只监听 80,直接加几行 Listen 不够,必须同步处理权限、虚拟主机和配置加载三件事,否则大概率遇到 403 Forbidden 或 Apache 启动失败。
修改 httpd.conf 添加监听端口和启用虚拟主机配置
打开 XAMPP\apache\conf\httpd.conf,做两件事:
- 在已有
Listen 80行下方添加新端口,例如:Listen 8080、Listen 8081(不能重复,避开443、3306、1025–65535中已被占用的) - 确认这一行没被注释:
Include conf/extra/httpd-vhosts.conf—— 如果前面有#,删掉它,否则你后面写的虚拟主机全无效
在 httpd-vhosts.conf 中定义每个端口的站点
编辑 XAMPP\apache\conf\extra\httpd-vhosts.conf,在文件末尾追加完整 <virtualhost></virtualhost> 块,注意每项都得写全:
-
ServerName写localhost就够了,不用带端口号(localhost:8080是错的) -
DocumentRoot必须是绝对路径,且路径中反斜杠要转义或统一用正斜杠,例如:"D:/xampp/htdocs/cn" - 必须嵌套
<directory></directory>块,否则 Windows 下默认拒绝访问 —— 这是最常漏的一步 - 里面至少要有:
Require all granted(Apache 2.4+)或Allow from all(旧版),别只改外层<directory></directory>
示例(端口 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
<virtualhost>
ServerName localhost
DocumentRoot "D:/xampp/htdocs/cn"
<directory>
Require all granted
AllowOverride All
</directory></virtualhost>
Windows 下绕不开的权限和防火墙问题
即使配置全对,Windows 可能仍拦住新端口:
- 检查端口是否真空闲:命令行运行
netstat -ano | findstr :8080,没输出才安全 - 如果用的是 Windows 防火墙,需手动放行该端口:进「高级安全 Windows 防火墙」→「入站规则」→「新建规则」→ 选「端口」→ TCP → 特定本地端口填
8080,8081→ 允许连接 - Apache 服务若提示“无法绑定到地址”,大概率是端口被 Skype、IIS、MySQL 或系统进程占了,不是配置问题
重启后仍打不开?先看这三处日志
别猜,直接查错:
- Apache 错误日志:
XAMPP\apache\logs\error.log—— 启动失败时第一线索 - 访问返回
403?检查httpd-vhosts.conf里对应<directory></directory>是否写了Require all granted - 访问返回
500?常见于DocumentRoot路径不存在、拼错、或目录内没有可执行的默认文件(如index.php)
多端口本质是多个独立虚拟主机,每个都要自洽;少一个 <directory></directory>、漏一个 Require、忘开防火墙,就卡在某个环节不动。动手前先确认端口空闲,改完必重启 Apache,别跳步。










