apache配置多端口需三步:1、在httpd.conf中添加listen 8080等端口声明;2、取消include conf/extra/httpd-vhosts.conf注释以启用虚拟主机;3、在httpd-vhosts.conf中为各端口配置virtualhost并设require all granted,否则易403或无法访问。

直接改 httpd.conf 和 httpd-vhosts.conf 就能跑通多端口,但顺序错、权限没开、Include 被注释,三个地方一漏就 403 或 无法访问。
修改 httpd.conf 添加监听端口
Apache 默认只监听 80,要支持 :8080、:8081 这类访问,必须显式声明。打开 D:\xampp\apache\conf\httpd.conf,找到这行:
Listen 80
在它下面新增你要用的端口(建议避开 1–1024 系统保留端口):
Listen 8080Listen 8081-
Listen 8000(可选,留作调试)
⚠️ 注意:Listen 后面不能加冒号(比如 Listen: 8080 是错的),也不能有空格;如果本机已有 Skype、IIS、SQL Server Reporting Services 占用这些端口,Apache 启动会失败,查控制面板日志看具体报错。
确保 httpd-vhosts.conf 已启用
很多人改完端口却没效果,是因为 Apache 根本没加载虚拟主机配置。检查 httpd.conf 中这行是否**取消注释**:
Include conf/extra/httpd-vhosts.conf
如果前面有 #,删掉它。否则你后面所有 <virtualhost></virtualhost> 都不会生效。
顺带确认 httpd-vhosts.conf 文件本身存在且路径正确:D:\xampp\apache\conf\extra\httpd-vhosts.conf。
在 httpd-vhosts.conf 中写端口对应站点
打开 httpd-vhosts.conf,在文件末尾添加每个端口的 <virtualhost></virtualhost> 块。例如:
<virtualhost>
DocumentRoot "D:/xampp/htdocs/project-a"
ServerName localhost:8080
<directory>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory></virtualhost><virtualhost>
DocumentRoot "D:/xampp/htdocs/project-b"
ServerName localhost:8081
<directory>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory></virtualhost>
关键点:
-
ServerName写成localhost:8080更稳妥(尤其 Windows 下有时不认纯localhost) -
Require all granted是 Apache 2.4+ 必须项,替代旧版的Allow from all;漏了就会 403 - 路径中的反斜杠
\必须改成正斜杠/,否则 Apache 解析失败 - 目录必须真实存在,且至少放一个
index.php或index.html
重启 Apache 并验证端口是否生效
保存所有文件后,在 XAMPP 控制面板中点击 Apache → Stop,再点 Start。如果启动失败:
- 看控制面板底部日志,重点搜
Address already in use(端口被占)、Syntax error(配置语法错)、DocumentRoot does not exist(路径不存在) - 命令行进到
D:\xampp\apache\bin,运行httpd.exe -t可快速校验配置语法是否合法 - 浏览器访问
http://localhost:8080,若看到目录列表或首页,说明成功;若仍跳转到默认htdocs,大概率是Include没开,或<virtualhost></virtualhost>没匹配到请求 Host
真正容易忽略的是:Windows 防火墙默认会拦截非 80/443 的入站连接——如果你打算让局域网其他设备通过 http://192.168.x.x:8080 访问,得手动放行对应端口。











