我已经在 Centos 7 上安装了 apache web 服务器,并已启用mod_ssl
它。但是当我尝试将其默认文档根目录更改为新目录(例如/home/user/public_html
)时,它会显示一个403 Forbidden
页面。我想这可能是因为目录的权限,但我不知道该怎么做以及如何更改它。我现在该怎么办?任何帮助都非常感谢。
答案1
不要将文档根目录放在用户主目录中。出于多种原因,这样做是不安全的,并且默认情况下 SELinux 不允许 Web 服务器读取用户主目录中的文件。使用 SELinux 可识别的目录(例如),在/srv/www
该目录下为每个虚拟主机创建目录,并为必须访问内容的用户提供适当的权限和 ACL。
如果由于某种原因您无法遵循良好的做法并且必须让 Web 服务器从用户主目录读取内容,则您可以设置httpd_read_user_content
布尔值。
setsebool -P httpd_read_user_content 1
但请注意,出于安全考虑,SELinux 永远不会允许写入用户主目录,因此需要写入内容(例如用户上传)的 Web 应用程序功能将无法工作。在另一个目录(例如)下/srv/www
,必须可写的目录可以指定为类型httpd_sys_rw_content_t
。