在 CentOS 上修改 Apache(httpd)的网站根目录,通常按下面几个步骤来操作(以 CentOS 7/8 + Apache/httpd 为例):
CentOS 中 Apache 一般叫 httpd,配置文件通常在:
/etc/httpd/conf/httpd.conf
虚拟主机可能在:
/etc/httpd/conf.d/*.conf
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
vi /etc/httpd/conf/httpd.conf
找到类似以下内容:
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
AllowOverride None
Require all granted
</Directory>
假设你想改成 /data/www:
DocumentRoot "/data/www"
<Directory "/data/www">
AllowOverride All
Require all granted
</Directory>
注意:
<Directory>里的路径必须和DocumentRoot一致
mkdir -p /data/www
echo "hello apache" > /data/www/index.html
chown -R apache:apache /data/www
chmod -R 755 /data/www
如果启用了 SELinux,必须设置 httpd 可访问目录:
getenforce
如果是 Enforcing:
semanage fcontext -a -t httpd_sys_content_t "/data/www(/.*)?"
restorecon -Rv /data/www
或者临时关闭(不推荐):
setenforce 0
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
systemctl restart httpd
浏览器访问:
http://服务器IP
看到 hello apache 即成功。
| 问题 | 原因 |
|---|---|
| 403 Forbidden | 目录权限或 SELinux |
| 页面不更新 | 浏览器缓存 |
| 仍显示旧目录 | 虚拟主机覆盖 |
如果你用的是 CentOS Stream / Apache 2.4 / 虚拟主机,可以告诉我,我可以给你具体配置示例。