apache虚拟主机配置需启用vhost_alias模块、加载httpd-vhosts.conf、注释默认documentroot/servername、为每个virtualhost设置唯一域名及directory权限,并配合hosts文件映射本地域名。

要让 Apache 通过 httpd.conf 实现虚拟主机绑定,核心是启用虚拟主机模块、加载配置、并正确设置主站点与多个域名的映射关系。关键不在于堆砌配置,而在于理清顺序和避免冲突。
启用虚拟主机功能
打开 httpd.conf(通常位于 Apache 安装目录的 conf/ 下),确认以下两行已取消注释(即删除开头的 #):
-
LoadModule vhost_alias_module modules/mod_vhost_alias.so—— 加载虚拟主机支持模块 -
Include conf/extra/httpd-vhosts.conf—— 引入独立的虚拟主机配置文件(推荐做法,便于管理)
若你坚持全部写在 httpd.conf 末尾,也需确保这两项已启用,否则 <virtualhost></virtualhost> 块不会生效。
禁用默认主站点干扰
Apache 默认会用 httpd.conf 中的 DocumentRoot 和 ServerName 作为“兜底站点”。当配置了多个 <virtualhost></virtualhost> 后,若未显式匹配到域名,请求可能落到默认配置上,导致 localhost 访问异常或虚拟主机失效。
建议操作:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 将
httpd.conf中原有的DocumentRoot、ServerName、<directory></directory>等主服务器级配置临时注释掉(加#) - 确保所有站点都明确定义在
<virtualhost></virtualhost>块中,包括 localhost 所需的默认入口
在 httpd.conf 中直接写虚拟主机(不依赖 httpd-vhosts.conf)
如确需全部集中配置,可在 httpd.conf 文件末尾添加如下结构(以两个站点为例):
<virtualhost>
DocumentRoot "D:/www/classmath"
ServerName web.classmath.com
<directory>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory></virtualhost><virtualhost>
DocumentRoot "D:/www/myblog"
ServerName www.myblog.com
<directory>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory></virtualhost><virtualhost>
DocumentRoot "D:/www"
ServerName localhost
<directory>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory></virtualhost>
注意:
- 每个
<virtualhost></virtualhost>必须有唯一的ServerName - Apache 2.4+ 必须包含
<directory></directory>权限块,且使用Require all granted - localhost 虚拟主机建议放在最后(或确保它不被前面更宽泛的规则覆盖)
配合 hosts 文件完成本地解析
仅改 Apache 配置还不够。浏览器需要知道域名指向哪台机器:
- 编辑系统 hosts 文件:
C:\Windows\System32\drivers\etc\hosts - 添加以下几行(IP 固定为本机):
127.0.0.1 localhost 127.0.0.1 web.classmath.com 127.0.0.1 www.myblog.com
保存后无需重启系统,但需确保 Apache 服务已重启才能加载新配置。
配置完成后,访问 http://localhost、http://web.classmath.com 或 http://www.myblog.com 就能分别进入对应站点。重点是模块启用、默认配置隔离、权限声明完整、hosts 映射到位——四者缺一不可。










