如何将XAMPP配置实现多个域名映射至不同端口的设置?

2026-04-24 18:451阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计794个文字,预计阅读时间需要4分钟。

如何将XAMPP配置实现多个域名映射至不同端口的设置?

没有添加这一步,www.a.com 或 test.local 基本上不会引导你到本地 Apache,浏览器会直接查询网络 DNS,如果返回 404 或超时。Windows 下的路径是 C:\Windows\System32\drivers\etc\hosts,使用管理员权限的记事本打开,在末尾追加:

127.0.0.1 www.a.com 127.0.0.1 test.local 127.0.0.1 dev.project

每行一个域名,不能有空格或中文注释;改完保存后无需重启系统,但建议清一下浏览器 DNS 缓存(chrome://net-internals/#dns 点 Clear host cache)。

httpd.conf 要显式声明新端口并启用 vhosts

只改 httpd-vhosts.conf 不生效,因为 Apache 默认只监听 80(和 HTTPS 的 443)。打开 D:\xampp\apache\conf\httpd.conf,找到 Listen 80 这一行,在它下面新增你要用的端口:

Listen 80 Listen 8080 Listen 8081 Listen 8090

接着确认虚拟主机配置已启用:搜索 Include conf/extra/httpd-vhosts.conf,确保前面没有 # 注释符。如果被注释了,删掉 # 并保存。

httpd-vhosts.conf 中每个 必须匹配监听端口且含 ServerName

打开 D:\xampp\apache\conf\extra\httpd-vhosts.conf,每个站点对应一个 <VirtualHost *:端口号> 块。关键点:

  • ServerName 必须和 hosts 里写的完全一致(区分大小写、无协议、无路径)
  • DocumentRoot 路径用正斜杠或双反斜杠,避免单反斜杠被转义
  • Apache 2.4+ 必须加 <Directory> 段并设 Require all granted,否则 403 Forbidden

示例(映射 www.a.com8080test.local8081):

<VirtualHost *:8080> ServerName www.a.com DocumentRoot "D:/xampp/htdocs/project-a" <Directory "D:/xampp/htdocs/project-a"> Require all granted </Directory> </VirtualHost> <VirtualHost *:8081> ServerName test.local DocumentRoot "D:/xampp/htdocs/project-b" <Directory "D:/xampp/htdocs/project-b"> Require all granted </Directory> </VirtualHost>

重启 Apache 前务必检查语法,否则服务起不来

改完所有配置文件后,别急着点 XAMPP 控制面板的 Restart。先做两件事:

  • 在命令行运行 D:\xampp\apache\bin\httpd.exe -t,输出 Syntax OK 才安全
  • 如果报错,错误信息里通常带具体行号(如 Invalid command 'Require', perhaps misspelled...),说明用了 2.2 语法但实际是 2.4+ 版本

常见坑:Order Deny,AllowAllow from all 在 Apache 2.4+ 已废弃,必须换 Require all grantedNameVirtualHost *:8080 这类旧指令在新版中也不需要,删掉反而更稳。

端口冲突比想象中频繁——尤其是 8080 常被 Docker、Java 应用或另一套 XAMPP 占用,用 netstat -ano | findstr :8080 查进程 ID,再用任务管理器结束对应 PID。

标签:xampp端口

本文共计794个文字,预计阅读时间需要4分钟。

如何将XAMPP配置实现多个域名映射至不同端口的设置?

没有添加这一步,www.a.com 或 test.local 基本上不会引导你到本地 Apache,浏览器会直接查询网络 DNS,如果返回 404 或超时。Windows 下的路径是 C:\Windows\System32\drivers\etc\hosts,使用管理员权限的记事本打开,在末尾追加:

127.0.0.1 www.a.com 127.0.0.1 test.local 127.0.0.1 dev.project

每行一个域名,不能有空格或中文注释;改完保存后无需重启系统,但建议清一下浏览器 DNS 缓存(chrome://net-internals/#dns 点 Clear host cache)。

httpd.conf 要显式声明新端口并启用 vhosts

只改 httpd-vhosts.conf 不生效,因为 Apache 默认只监听 80(和 HTTPS 的 443)。打开 D:\xampp\apache\conf\httpd.conf,找到 Listen 80 这一行,在它下面新增你要用的端口:

Listen 80 Listen 8080 Listen 8081 Listen 8090

接着确认虚拟主机配置已启用:搜索 Include conf/extra/httpd-vhosts.conf,确保前面没有 # 注释符。如果被注释了,删掉 # 并保存。

httpd-vhosts.conf 中每个 必须匹配监听端口且含 ServerName

打开 D:\xampp\apache\conf\extra\httpd-vhosts.conf,每个站点对应一个 <VirtualHost *:端口号> 块。关键点:

  • ServerName 必须和 hosts 里写的完全一致(区分大小写、无协议、无路径)
  • DocumentRoot 路径用正斜杠或双反斜杠,避免单反斜杠被转义
  • Apache 2.4+ 必须加 <Directory> 段并设 Require all granted,否则 403 Forbidden

示例(映射 www.a.com8080test.local8081):

<VirtualHost *:8080> ServerName www.a.com DocumentRoot "D:/xampp/htdocs/project-a" <Directory "D:/xampp/htdocs/project-a"> Require all granted </Directory> </VirtualHost> <VirtualHost *:8081> ServerName test.local DocumentRoot "D:/xampp/htdocs/project-b" <Directory "D:/xampp/htdocs/project-b"> Require all granted </Directory> </VirtualHost>

重启 Apache 前务必检查语法,否则服务起不来

改完所有配置文件后,别急着点 XAMPP 控制面板的 Restart。先做两件事:

  • 在命令行运行 D:\xampp\apache\bin\httpd.exe -t,输出 Syntax OK 才安全
  • 如果报错,错误信息里通常带具体行号(如 Invalid command 'Require', perhaps misspelled...),说明用了 2.2 语法但实际是 2.4+ 版本

常见坑:Order Deny,AllowAllow from all 在 Apache 2.4+ 已废弃,必须换 Require all grantedNameVirtualHost *:8080 这类旧指令在新版中也不需要,删掉反而更稳。

端口冲突比想象中频繁——尤其是 8080 常被 Docker、Java 应用或另一套 XAMPP 占用,用 netstat -ano | findstr :8080 查进程 ID,再用任务管理器结束对应 PID。

标签:xampp端口