【问题标题】:Set Apache to allow access for a directory not under document root将 Apache 设置为允许访问不在文档根目录下的目录
【发布时间】:2014-10-04 02:58:59
【问题描述】:

我在 Apache 中唯一的虚拟主机将 /var/www/html 作为其文档根目录,该 html 是指向 /home/yanzs/web/some-project/ 之类的符号链接。我这样做是为了让我可以轻松地处理新的 Web 项目,而无需在 apache 中创建新的虚拟主机。所以这是我的问题,当我访问 localhost 时,它说

Forbidden

You don't have permission to access / on this server.

如何设置“/home/yanzs/web/some-project/”目录的权限,或者更好地设置其父目录“/home/yanzs/web/”的权限?

这是 /var/www/ 目录的默认设置,FollowSymLinks 选项是否会自动为 /var/www 下的符号链接目标目录设置权限?

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

更新:我也尝试使用Alias 设置,也不起作用。 更新2:如果我将文档根目录设置为/var/www/html,并在html目录下创建一个符号链接,指向/var/www/project。然后它起作用了,Alias 方法也起作用了。似乎与所有者或其他文件权限设置有关。 /var/www 下的所有文件和文件夹都归 root 所有,而 /home/yanzs/web 下的所有文件和文件夹归 yanzs 所有。

解决方案:

事实证明,all 父目录的权限也很重要。父目录之一是从 Windows 复制的,默认情况下没有所需的权限。有关详细信息,请参阅(13) Permission Denied。一个教训是永远不要忘记检查错误日志,即使您知道权限与浏览器的输出相关。

【问题讨论】:

  • 您的“/home/yanzs/web/some-project/”目录是否有 index.html 文件?如果没有默认主页文件(index.htm、.html、.php 等),我会看到这个问题。
  • @jammypeach 是的,有 index.html 文件。并查看我的“更新 2”以获取更多信息,感谢您的宝贵时间
  • 读到,我同意权限。尝试将 apache 的用户(www 或 httpd 或 apache,以适用者为准)添加到您的组,并授予组对您的符号链接目录的读写和执行权限。这可能会做到(您可能也需要重新加载 apache)。
  • @jammypeach 我的 apaches 似乎由名为 www-data 的用户运行,我将该用户添加到我的组中,但它仍然无法正常工作。我什至“chown -R root project”和“chmod 777 -R project”,使项目文件夹具有与/var/www/html相同的用户、组和权限设置,但问题仍然存在。
  • 我不确定在这种情况下您还能尝试什么 - 抱歉,我没有更多建议了。也许更多的谷歌搜索会有所帮助,或者知道更多的人可以在这里回答。

标签: apache


【解决方案1】:

事实证明,所有父目录的权限也很重要。父目录之一是从 Windows 复制的,默认情况下没有所需的权限。有关详细信息,请参阅(13) Permission Denied。一个教训是永远不要忘记检查错误日志,即使您知道权限与浏览器的输出相关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多