apache必须显式声明所有监听端口,仅改listen 80为listen 81会导致80端口失效;需同时保留listen 80和新增listen 81,并为每个端口单独配置对应virtualhost块,否则请求将落入默认站点。

Apache Listen 配置必须显式声明多个端口
只改一个 Listen 80 为 Listen 81,不会让两个端口同时生效——Apache 默认只监听配置中第一个 Listen 指令。要双端口并存,必须在 httpd.conf 里**逐行写明**所有要监听的端口。
常见错误是只加了一行但忘了保留原 Listen 80,结果反而把 80 关掉了;或者加了 Listen 81 却没同步更新 VirtualHost 的绑定端口,导致请求被默认虚拟主机吞掉。
- 打开
C:\xampp\apache\conf\httpd.conf - 找到已有
Listen 80行,在它下方新增一行:Listen 81 - 确保两行都未被注释(即前面没有
#) - 保存后重启 Apache,否则改动不生效
VirtualHost 必须按端口分别定义,不能共用 *
<virtualhost></virtualhost> 和 <virtualhost></virtualhost> 是完全独立的配置块,哪怕域名相同、目录相同,也得各自写一遍。漏掉某一个端口的 VirtualHost,该端口收到的请求就会落到 Apache 的默认站点(通常是 htdocs 根目录),而不是你预期的站点。
尤其注意:如果只配了 *:80 而没配 *:81,那么访问 http://localhost:81/ 会显示 XAMPP 默认页或 403 错误,不是你设的站点。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 编辑
C:\xampp\apache\conf\extra\httpd-vhosts.conf - 每个端口都要有对应块,例如:
<virtualhost><br> ServerName localhost<br> DocumentRoot "C:/xampp/htdocs"<br></virtualhost><br><virtualhost><br> ServerName localhost<br> DocumentRoot "C:/xampp/htdocs/test"<br></virtualhost>
-
ServerName可以一样,但DocumentRoot或其他行为逻辑可不同
Windows 下 80 端口常被系统或 IIS 占用
即使你写了 Listen 80,Apache 启动时也可能报错:“(OS 10013) An attempt was made to access a socket in a way forbidden by its access permissions.”——这基本等于 Windows 告诉你:80 端口已被占用,且当前用户无权抢夺。
比“能不能配”更现实的问题是“能不能用”。IIS、Skype、SQL Server Reporting Services、甚至某些国产软件管家都会静默占着 80。
- 命令行查占用:
netstat -ano | findstr :80,再用tasklist | findstr <pid></pid>看进程名 - 临时释放:在管理员 PowerShell 中运行
netsh http delete urlacl url=http://+:80/(仅对 HTTP API 占用有效) - 长期方案:要么停掉占用程序,要么直接放弃 80,专注用 81+ 端口开发
hosts 文件和浏览器访问需带端口号
如果你用 localhost:81 或自定义域名如 dev.local:81,必须在 C:\Windows\System32\drivers\etc\hosts 里加对应解析行,例如:127.0.0.1 dev.local。但注意:浏览器访问时仍必须显式写 :81,因为 dev.local 默认走 80。
别指望不输端口号就能访问 81 上的服务——HTTP 协议本身没这个机制。有人试图用反向代理或 hosts + 重定向绕过,但在纯 XAMPP 场景下,这是徒劳的。
- 正确访问方式:
http://localhost:81/或http://dev.local:81/ - 错误幻想:
http://dev.local/自动跳到 81 端口(除非你在 80 上部署了一个跳转页) - 若真想省端口,唯一正解是把 80 端口真正腾出来并稳定使用
netstat 这一步,结果卡在启动失败上。端口监听是硬性资源竞争,不是配置开关。










