如何在 apache 中将目录列入白名单

如何在 apache 中将目录列入白名单

我想通过浏览器提供的文件位于/root/my_folder(ubuntu 14.04)。我将路径从 更改为,/var/www/html之后当我尝试在浏览器中访问它时出现禁止错误。/root/my_folder/etc/apache2/sites-available/000-default.conf

Apache 默认欢迎页面声明如下:

默认情况下,Ubuntu 不允许通过 Web 浏览器访问除位于 /var/www、public_html 目录(启用时)和 /usr/share(用于 Web 应用程序)之外的任何文件。如果您的网站使用位于其他地方的 Web 文档根目录(例如 /srv),您可能需要在 /etc/apache2/apache2.conf 中将您的文档根目录列入白名单。

如何将我的根目录列入白名单/etc/apache2/apache2.conf,我该使用什么语法?

答案1

您不能也不应该从该目录提供服务。只有当 Apache 以 user 身份运行时,/root该目录才可由 user 访问。查看错误日志,您会看到 Apache 抱怨权限问题:rootwww-data

tail -f /var/log/apache2/error.log

root如果您正在与系统上的用户一起工作,那么您应该直接在里面上传文件/var/www/html,因为您在那里已经拥有权限。

答案2

最简单的解决方法可能是将该目录绑定挂载到/var/www/html如下位置:

mount -t none -o bind,ro /root/my_folder /var/www/html

然后启动 Apache。

注意:在 Fedora Linux 发行版以及其他使用 systemd 的发行版中,由于某些安全功能默认启用,某些服务在启动后看不到挂载完成。有关更多详细信息,请阅读systemd 管理员指南,第十二部分。此外,如果使用 SELinux,文件需要有适当的标签,例如public_content_t

相关内容