CentOS Apache HTTPD 配置(403 禁止)

CentOS Apache HTTPD 配置(403 禁止)

这是我的 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/

它应该可以解决你的问题。

相关内容