You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何$_SERVER['DOCUMENT_ROOT']未匹配Apache虚拟主机配置?如何修复?

问题分析与解决:$_SERVER['DOCUMENT_ROOT']未返回虚拟主机配置路径

问题原因

你遇到的情况核心是请求没匹配到对应的虚拟主机配置,Apache仍用默认站点根目录(C:/wamp64/www)处理请求,所以$_SERVER['DOCUMENT_ROOT']返回默认值。常见触发场景:

  • Apache没加载虚拟主机配置文件
  • 本地hosts文件没映射域名到127.0.0.1
  • 访问时用了错误地址(比如直接访问localhost/test.php,而非虚拟主机的ServerName)

解决步骤

1. 开启Apache对虚拟主机配置的加载

打开WampServer的httpd.conf配置文件,找到这一行:

# Include conf/extra/httpd-vhosts.conf

删掉开头的#注释,改成:

Include conf/extra/httpd-vhosts.conf

保存后重启Apache服务。

2. 配置本地hosts文件映射域名

Windows的hosts文件路径是C:\Windows\System32\drivers\etc\hosts,用管理员权限打开,添加:

127.0.0.1 dev.test.com
127.0.0.1 test

保存后,打开管理员命令提示符执行ipconfig /flushdns刷新DNS缓存。

3. 用虚拟主机的ServerName访问站点

必须通过配置的域名访问:

  • 对应dev.test.com配置,访问http://dev.test.com/test.php
  • 对应test配置,访问http://test/test.php
    别直接用localhost/test.php或本地文件路径访问,否则Apache会用默认站点配置。

4. 验证配置是否生效

在虚拟主机根目录(比如c:/wamp64/www/test)新建info.php,内容:

<?php phpinfo(); ?>

通过对应域名访问该文件,查看输出里的SERVER_NAME和DOCUMENT_ROOT字段,确认是否匹配虚拟主机配置值。

完成以上步骤后,$_SERVER['DOCUMENT_ROOT']就会返回你在虚拟主机中设置的DocumentRoot路径了。

内容的提问来源于stack exchange,提问作者HDer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 15:17:21