DocumentRoot 必须使用绝对路径,如“/var/www/html”,不可用相对路径;需确保目录存在、权限正确(如chown www-data:www-data)、末尾无斜杠,并配套配置含Require all granted的Directory块。

DocumentRoot 不接受相对路径,必须写绝对路径。
DocumentRoot 只认绝对路径
Apache 启动时需要明确知道从哪个物理位置开始提供文件,相对路径会因启动目录不同而失效。配置中出现类似 DocumentRoot "htdocs" 或 DocumentRoot "../myapp" 的写法,Apache 会直接报错或静默回退到默认路径(如 /usr/local/apache2/htdocs),导致文件“找不到”。
正确做法是:以根目录 / 开头,写出完整路径。
- XAMPP(Windows):
DocumentRoot "C:/xampp/htdocs" - XAMPP(macOS):
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs" - Ubuntu/Debian:
DocumentRoot "/var/www/html" - CentOS/RHEL:
DocumentRoot "/var/www" - 宝塔(Linux):
DocumentRoot "/www/wwwroot/example.com"
确认路径真实存在且权限正确
写对了绝对路径还不够——目标目录必须存在、可读,且 Apache 进程有访问权限。
- 用命令检查目录是否存在:
ls -ld /var/www/html - 确认属主和权限合理,例如:
chown -R www-data:www-data /var/www/html(Ubuntu)或chown -R apache:apache /var/www(CentOS) - 目录末尾不要加斜杠,
"/var/www/html/"是错误写法,应为"/var/www/html"
配套的 <Directory> 块不能漏
仅设置 DocumentRoot 不足以让 Apache 提供服务,还必须显式授权该目录:
错误示例(无授权):
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
<Directory "/var/www/html"> </Directory>
正确示例(含必要指令):
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
注意:Require all granted 是 Apache 2.4+ 的强制要求,旧版的 Allow from all 已无效。
Blazor WASM 等前端应用要特别注意
这类应用依赖 index.html 中的相对路径加载 _framework、_content 等资源。如果 DocumentRoot 没有精确指向其 wwwroot 目录,所有资源请求都会基于错误根路径发起,结果全是 404。
例如 Blazor 项目实际路径是 /var/www/myapp/wwwroot,就必须设为:
DocumentRoot "/var/www/myapp/wwwroot"
而不是 "/var/www/myapp" 或 "/var/www"。

















