RHEL Apache:VirtualHost 上禁止 403

RHEL Apache:VirtualHost 上禁止 403

我的文件全部归 apache:apache 所有。所有目录都有 770 个权限,文件有 660 个权限。我原来的虚拟主机似乎没问题,但第二个虚拟主机在所有路径上都出现 403 错误。

这是我在 /etc/httpd/conf/httpd.conf 中的当前配置

<Directory "/var/www/site1">
        Options Indexes FollowSymLinks
        AllowOverride All
        <IfModule mod_access.c>
                Order allow,deny
                Allow from all
        </IfModule>
</Directory>

<Directory "/var/www/site2">
        Options Indexes FollowSymLinks
        AllowOverride All
        <IfModule mod_access.c>
                Order allow,deny
                Allow from all
        </IfModule>
</Directory>

<VirtualHost *:80>
        ServerAdmin     [email protected]
        DocumentRoot    /var/www/site1/
        ServerName      site1.domain.com
        ErrorLog        /var/log/httpd/site1.error.log
        CustomLog       /var/log/httpd/site1.access.log common
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin     [email protected]
        DocumentRoot    /var/www/site2/
        ServerName      site2.domain.com
        ErrorLog        /var/log/httpd/site2.error.log
        CustomLog       /var/log/httpd/site2.access.log common
</VirtualHost>

答案1

SELinux 很可能是这里的罪魁祸首。

某种程度上,在目录中创建文件/目录时,父级的上下文没有被正确继承/var/www

隐式地设置容器restorecon或明确地设置容器chcon应该可以解决这个问题。

/var/log/audit.log在 SELinux 设置中排除故障时请注意其中的行。

要解决当前问题,请运行:

# restorecon -R /var/www

以 root 身份。这将恢复/var/wwwSELinux 系统策略确定的上下文/var/www以及其下的所有文件夹和文件。

有关 SELinux 故障排除的更多信息,请参见这里这里这里

相关内容