怎么修改 Apache 默认网站根目录 DocumentRoot 路径

文章导读
修改 Apache 默认根目录的核心是编辑配置文件 httpd.conf,同步更新 DocumentRoot 和 Directory 指令,并处理好文件系统权限与 SELinux 策略,最后重启服务。
📋 目录
  1. 环境准备与依赖检查
  2. 核心配置修改
  3. 权限与安全策略
  4. 验证与排查
  5. 常见坑
  6. 参考文档
A A

修改 Apache 默认根目录的核心是编辑配置文件 httpd.conf,同步更新 DocumentRoot 和 Directory 指令,并处理好文件系统权限与 SELinux 策略,最后重启服务。

先说结论:修改配置需两处同步(DocumentRoot 与 Directory),权限不足是 403 报错主因。

  • 适合:需要迁移网站文件位置或自定义目录结构的场景。
  • 先准备:备份配置文件,确认新目录路径及权限,检查 SELinux 状态。
  • 验收:通过配置语法检查,访问测试页面确认无 403 报错。

环境准备与依赖检查

在修改配置前,建议先确认系统环境及必要工具是否就绪,避免后续命令执行失败。

1. 确认配置文件路径

# CentOS/RHEL
grep -r "DocumentRoot" /etc/httpd/
# Debian/Ubuntu
grep -r "DocumentRoot" /etc/apache2/
# Windows (典型路径)
C:\\Apache24\\conf\\httpd.conf

2. 检查 SELinux 工具包(Linux)

若系统开启 SELinux,需确保已安装策略管理工具,否则 semanage 命令无法使用。

怎么修改 Apache 默认网站根目录 DocumentRoot 路径
# CentOS/RHEL 7+
yum install policycoreutils-python-utils
# CentOS/RHEL 8+ 或 Fedora
dnf install policycoreutils-python-utils

核心配置修改

1. 备份配置文件
在修改前务必备份 httpd.conf 或对应的虚拟主机配置文件,防止配置错误导致服务无法启动。

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak

2. 修改 DocumentRoot 路径
打开配置文件,找到 DocumentRoot 指令,将路径改为新目录。

DocumentRoot "/home/wwwroot/new_site"

3. 同步修改 Directory 块
在同一个配置文件中,找到与新路径对应的<Directory>块,确保路径一致,并包含允许访问的指令(Apache 2.4+ 使用 Require all granted):

<Directory "/home/wwwroot/new_site">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

4. Windows 特殊注意
Windows 用户除修改 DocumentRoot 外,还需检查 SRVROOT 指令是否指向正确的 Apache 安装根目录,路径建议使用正斜杠或双反斜杠。

怎么修改 Apache 默认网站根目录 DocumentRoot 路径
SRVROOT "C:/Apache24"
DocumentRoot "C:/www/new_site"

权限与安全策略

1. 设置文件系统权限
确保 Apache 运行用户(如 www-data 或 apache)对新目录有读取和执行权限。父级目录也需要有执行权限,否则无法进入。

chmod 755 /home/wwwroot/new_site
# 注意:仅针对新网站目录授权,避免递归修改系统目录
chown -R apache:apache /home/wwwroot/new_site

2. 处理 SELinux(Linux 特定)
如果系统开启了 SELinux,需修改上下文类型,否则仍会报错。生产环境建议配置策略而非关闭 SELinux。

semanage fcontext -a -t httpd_sys_content_t "/home/wwwroot/new_site(/.*)?"
restorecon -Rv /home/wwwroot/new_site

3. 重启服务
配置完成后重启 Apache 服务使更改生效。

systemctl restart httpd  # 或 apache2

验证与排查

1. 配置语法检查
执行 apachectl -t 或 httpd -t,确认输出 Syntax OK,无报错信息。

2. 页面访问测试
在浏览器访问服务器 IP 或域名,确认显示新目录下的 index 文件内容。若仍显示旧内容,可能是浏览器缓存或配置未重载。

怎么修改 Apache 默认网站根目录 DocumentRoot 路径

3. 查看错误日志
若出现 403 错误,检查 error_log 文件。常见报错如 Permission denied 或 SELinux 拦截记录,可据此调整权限或上下文。

常见坑

1. 只改了一处配置
DocumentRoot 和<Directory>路径必须保持一致,漏改 Directory 块是 403 报错的最常见原因。

2. 虚拟主机冲突
如果启用了虚拟主机(vhost),默认配置可能被 vhost 文件覆盖。需检查 sites-enabled 或 httpd-vhosts.conf 中的配置优先级。

3. 父目录权限缺失
新目录本身权限正确,但父目录对 Apache 用户不可执行,也会导致无法访问。需逐级检查路径权限。

参考文档