Apache支持同一台机器运行多个网站,关键在于配置虚拟主机:一、启用httpd.conf中的Include和NameVirtualHost;二、在httpd-vhosts.conf中定义多个块,分别设置ServerName与DocumentRoot;三、在hosts文件添加127.0.0.1域名映射;四、重启Apache并验证访问。

Apache 支持在同一台机器上运行多个网站,关键在于正确配置虚拟主机(VirtualHost),并确保各站点互不干扰。本地开发常用基于域名或基于 IP 的方式,无需真实公网域名和多网卡,靠 hosts 文件 + Apache 配置 即可实现多站共存。
一、启用虚拟主机支持
打开 Apache 主配置文件 httpd.conf(路径如:D:\phpStudy\Apache\conf\httpd.conf 或 /etc/httpd/conf/httpd.conf),确认以下两项已启用:
- 取消注释
Include conf/extra/httpd-vhosts.conf行(去掉前面的#) - 确保
NameVirtualHost *:80已存在且未被注释(Apache 2.4+ 可省略,但保留更兼容) - 检查
Listen 80正常启用,若需多端口(如 8080),可追加Listen 8080
二、配置虚拟主机(推荐基于域名)
编辑 conf/extra/httpd-vhosts.conf,清空旧内容(避免冲突),填入类似以下结构(每个 <virtualhost></virtualhost> 对应一个站点):
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
<VirtualHost *:80>
ServerName localhost
DocumentRoot "D:/WWW"
<Directory "D:/WWW">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName web.classmath.com
DocumentRoot "D:/WWW/classmath"
<Directory "D:/WWW/classmath">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName dbmanager
DocumentRoot "D:/WWW/phpMyAdmin"
<Directory "D:/WWW/phpMyAdmin">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
注意:第一个 VirtualHost 应设为 localhost,作为默认兜底站点;ServerName 必须与 hosts 中定义一致;DocumentRoot 路径末尾不要加斜杠。
三、绑定本地域名到 IP
用管理员权限打开系统 hosts 文件(Windows: C:\Windows\System32\drivers\etc\hosts;Linux/macOS:/etc/hosts),在末尾添加:
127.0.0.1 localhost 127.0.0.1 web.classmath.com 127.0.0.1 dbmanager
保存后无需重启系统,但浏览器缓存可能需清除(或尝试无痕模式访问)。
四、验证与排错要点
- 修改完所有配置后,务必 重启 Apache 服务(phpStudy 点“重启”按钮,命令行用
apachectl restart或systemctl restart httpd) - 访问
http://localhost应打开默认站点;http://web.classmath.com应打开 classmath 目录内容 - 若页面 403 报错:检查
DocumentRoot路径是否存在、权限是否允许(Require all granted不可遗漏) - 若页面 404 或跳转到其他站:确认
ServerName与 hosts 完全一致(大小写、拼写、无空格) - 若 phpMyAdmin 失效:确保其所在 VirtualHost 的
DocumentRoot指向正确路径,且该目录下有 index.php

















