Apache 在符号链接上表现异常

Apache 在符号链接上表现异常

我有一个装有 CentOS 的 VPS,Apache Web 服务器出现了非常奇怪的行为。
我启动这台服务器时使用了 50GB 的磁盘空间,但很快空间就用完了,所以我询问了维护部门,他们又添加了 50GB 作为新硬盘。所以我创建了一个新分区并将其挂载进去/home/media,然后将我所有的网站媒体文件都移到了这个位置,最后我创建了一个 SymLink,如下所示:

lrwxrwxrwx.  1 apache apache    12 May 15 14:07 media -> /home/media/

今天,我又一次磁盘空间不足,他们这次确实添加了一个容量为 100GB 的新硬盘。我只是想做和我之前做的那样,/home/media/但这次它被称为/data/media

lrwxrwxrwx.  1 apache pooya    12 Jun  9 22:43 media -> /data/media/

现在,当我在浏览器中导航到媒体文件夹中的文件时,出现Forbidden 403错误。

我检查了 Apache 的错误日志,上面写着:不允许符号链接或链接目标无法访问:/var/www/html/media

互联网上针对此错误的所有解决方案都是添加Options Indexes FollowSymLinks或网络服务器面临使用 symliked 目录的访问问题。

FollowSymLinks在 apache 配置文件和我的根.htaccess文件中都有。所有文件和文件夹以及它们的父级/data/media/都已 chmodded 到777并且其中的 chown 是apache:apache

我的网络服务器出了什么问题?

答案1

您几乎永远不需要在您的 Web 树中拥有 777 个权限。

您可能需要修复 SELinux 权限,因为 /data/media 不是存储 Web 文件的标准位置。您可以通过暂时禁用 SELinux 来快速测试这一点

setenforce 0

运行一些测试,如果网络文件现在可以访问,则 SELinux 是罪魁祸首。重新启用 Linux

setenforce 1

然后解决问题

semanage fcontext -a -t httpd_sys_content_t "/data/media(/.*)?"

其次是

restorecon -r -v /data/media

现在 apache 应该能够访问这些文件。


semanage 实用程序由 policycoreutils-python 包提供,因此您可以使用以下命令安装它

yum install policycoreutils-python

相关内容