Apache 在虚拟主机上给我 403

Apache 在虚拟主机上给我 403

我一直在尝试在 CentOS 7 中掌握 Apache。

我设置了两个虚拟主机并创建了基本的index.html页面,如下所示:

/var/www/domainA/public_html/index.html

/var/www/domainB/public_html/index.html

两台主机都具有如下权限:

域A:

public_html -> jonathan:jonathan
index.html -> root:root

域B:

public_html -> jonathan:jonathan
index.html -> root:root

现在,发生的情况是 DomainA 的 index.html 页面提供得很好,但域 B 的 index.html 给了我一个 403 Forbidden。

DomainB 的 error.log 给了我这个:

AH00132: file permissions deny server access: /var/www/DomainB/public_html/index.html

为什么会发生这种情况?这让我非常难过。

答案1

事实证明,问题不是文件/文件夹权限本身,而是非工作域的安全上下文。

根据我有限的理解,为了让 Apache 提供文件,需要将文件/文件夹配置为在上下文下运行httpd_sys_content_d

我的“错误”是非工作域已从我的开发区域转移到 Apache 内容文件夹中,并且没有正确的安全上下文,因此 Apache 无法提供文件。通过在文件夹和子文件夹ls -Z上运行证实了这一点。public_html

我曾经chcon -R -t httpd_sys_content_t public_html/设置正确的安全上下文,现在 Apache 正在提供一切服务。

答案2

chcon -R -t httpd_sys_content_t <Your_Document_Root_Dir>

应该做的伎俩

相关内容