![如何在 apache 中将目录列入白名单](https://linux22.com/image/658867/%E5%A6%82%E4%BD%95%E5%9C%A8%20apache%20%E4%B8%AD%E5%B0%86%E7%9B%AE%E5%BD%95%E5%88%97%E5%85%A5%E7%99%BD%E5%90%8D%E5%8D%95.png)
我想通过浏览器提供的文件位于/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 抱怨权限问题:root
www-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
。