这是我的 httpd.conf 中的内容
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mcmoddr.com
ServerAlias www.mcmoddr.com
DocumentRoot /home/mcmoddr/www/
ErrorLog /mcmoddr/logs/error.log
CustomLog /mcmoddr/logs/accesslog combined
</VirtualHost>
当我访问该网站时,我收到 403 禁止错误,文件是用 vsftpd 添加的,并且具有权限 drwxr-xr-x
答案1
您正在使用 CentOS 的库存安装,如果正确,请检查 SELinux 是否处于强制模式
getenforce
如果结果是“强制执行”
暂时将其改为允许
setenforce 0
然后再试一次,您还可以将网页内容的情况引导到您的主目录中的文件中。
答案2
禁用 SELinux 或以 ROOT 身份运行
setsebool -P httpd_enable_homedirs on
chcon -R -t httpd_sys_content_t /home/
chcon -R -t httpd_sys_rw_content_t /home/
答案3
Freaktor 的回答“setenforce 0”对我来说确实“有效”(谢谢!)
但为了让它继续工作并重新启用 SELinux,我需要
sudo chcon -Rv --type=httpd_t /path/to/my/files
...这为我的目录以及其中的所有文件和目录提供了“httpd_t”的安全上下文,这是一种笨拙的说法,即 SELinux 让 httpd 读取这些文件。
再次启用 selinux 非常简单
setenforce 1
答案4
请在您现有的代码中添加以下行。
restorecon -r /home/mcmoddr/www/
它应该可以解决你的问题。