直接改documentroot不够,必须同步调整documentroot与路径、权限、selinux上下文及目录访问策略,否则易出现403或404错误;需验证磁盘挂载与读写,修改配置后重载服务并测试。
直接改 documentroot 不够,必须同步调整路径指向、权限控制、selinux 上下文(如启用)和 apache 的目录访问策略,否则大概率出现 403 或 404 错误。
确认目标磁盘已挂载且可写
迁移前先确保数据盘就位并可用:
- 运行
df -h查看挂载点(例如/dev/sdb1挂在/data) - 用
lsblk核对设备名与分区状态 - 执行
touch /data/test && rm /data/test验证读写权限
修改主配置中的 DocumentRoot 和 Directory 块
路径必须完全一致,两处不同步是出错主因:
- RHEL/CentOS:编辑
/etc/httpd/conf/httpd.conf - Ubuntu/Debian:编辑
/etc/apache2/sites-enabled/000-default.conf或/etc/apache2/apache2.conf - 找到
DocumentRoot "/var/www/html",改为你的新路径,如DocumentRoot "/data/www" - 紧接着找到对应
<directory></directory>,严格替换成<directory></directory> - 确保该
<directory></directory>块内有Require all granted(Apache 2.4+)
迁移文件并设置正确权限与上下文
不能只复制,还要让 Apache 进程能读取执行:
- 创建目标目录:
mkdir -p /data/www - 复制全部内容(含隐藏文件):
cp -a /var/www/html/* /data/www/ - 设属主属组:
● RHEL/CentOS:chown -R apache:apache /data/www
● Ubuntu/Debian:chown -R www-data:www-data /data/www - 设基础权限:
chmod -R 755 /data/www(必要时细化到文件/目录) - 若 SELinux 启用(RHEL 系常见),需恢复上下文:
restorecon -Rv /data/www,或临时验证用setenforce 0
重载服务并验证
改完不重载等于没改,推荐平滑重载避免中断:
- RHEL/CentOS:
sudo systemctl reload httpd - Ubuntu/Debian:
sudo systemctl reload apache2 - 放一个
test.html到/data/www/,浏览器访问http://服务器IP/test.html - 检查错误日志定位问题:
sudo tail -f /var/log/httpd/error_log(RHEL)或/var/log/apache2/error.log(Debian)











