能配,但必须同时改三处:监听端口、虚拟主机、目录权限,缺一不可;否则403或500错误必现。listen指令须显式添加多个端口,virtualhost *:8081不会自动触发监听,必须在httpd.conf中追加listen 8081等行;httpd-vhosts.conf需启用且含完整权限块,使用require all granted语法;documentroot路径禁用中文和空格。

能配,但必须同时改三处:监听端口、虚拟主机、目录权限,缺一不可;否则 403 或 500 错误必现。
Listen 指令必须显式添加多个端口
Apache 不会自动为 VirtualHost *:8081 开启监听,只靠 httpd-vhosts.conf 配置无效。必须在 httpd.conf 中手动追加 Listen 行:
- 打开
E:\XAMPP\apache\conf\httpd.conf - 找到原有
Listen 80,在其下方新增(端口不能被占用):Listen 8081Listen 8082 - 若需绑定特定 IP(如仅限本地),写成
Listen 127.0.0.1:8081 - 修改后不重启 Apache,
netstat -an | findstr :8081看不到监听,说明没生效
httpd-vhosts.conf 必须启用且含完整 权限块
默认该文件是被注释掉的,且 XAMPP 2.x+ 使用 Require all granted 语法,老教程里的 Allow from all 在新版 Apache 2.4+ 下直接报 500 错误。
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
- 先取消
httpd.conf中这行的注释:Include conf/extra/httpd-vhosts.conf - 在
httpd-vhosts.conf末尾添加完整块(路径、端口、权限三者严格对应):<virtualhost> DocumentRoot "E:/XAMPP/htdocs/cn" ServerName localhost <directory> Options Indexes FollowSymLinks AllowOverride All Require all granted </directory></virtualhost> -
DocumentRoot路径中不能含中文或空格,否则 Apache 启动失败 - 每个
VirtualHost块必须有独立的<directory></directory>,不能复用上级配置
hosts 文件不是必须项,但域名访问时才需要
用 localhost:8081 直接访问,不需要改 hosts;只有想用 cn.test 这类自定义域名时,才需同步配置。
- 编辑
C:\Windows\System32\drivers\etc\hosts - 追加一行:
127.0.0.1 cn.test - 对应
httpd-vhosts.conf中要写ServerName cn.test,且VirtualHost端口需与Listen一致 - 改完
hosts不需重启 Apache,但浏览器 DNS 缓存可能需清空(ipconfig /flushdns)
最容易被忽略的是:Apache 2.4 的权限模型和 2.2 完全不兼容,把旧教程的 Order allow,deny 直接粘贴进去,服务能启动但所有请求都返回 500 —— 因为语法错误导致整个 VirtualHost 解析失败,日志里只会写 “Syntax error on line X”。










