4

这个问题解决了如何在站点目录中启用符号链接;但是,它仅适用于目录。

使用FollowSymLinks,OS X 上的 Apache 将遵循目录的符号链接,但不遵循文件的符号链接。

例如:

这有效: ~/Sites/Experiments -> /Users/myusername/Projects/Experiments/

这失败了: ~/Sites/test.html -> /Users/myusername/Projects/Test1/test.html

Forbidden 
You don't have permission to access

如何配置 Apache 或权限,以便 Apache 遵循文件符号链接?

4

3 回答 3

1
  1. 检查您的网络服务器用户(可能是 www-data)是否可以访问目标文件及其所有父目录的文件权限。世界可读的权限就足够了。如果您不太关心安全性(这意味着这不是生产系统),您可以执行以下操作: chmod o+rx /Users/myusername/Projects /Users/myusername/Projects/Test1; chmod o+r /Users/myusername/Projects/Test1/test.html
  2. 确保您没有任何<Location><Directory>阻止该目标目录工作的块。
  3. 确保您确实有一个<Directory>允许访问您的/Users/myusername/Projects/Test1路径的块。通常,Apache 只会授予对不包括您的主目录的默认位置的访问权限。您可以通过临时添加以下内容来做到这一点(在修复权限问题后将其删除,否则它会提供过多的访问权限):

-

# This is a temporary debugging tool, don't leave it forever.
<Directory "/">
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  allow from all
</Directory>
于 2012-05-19T01:03:45.643 回答
1

目标文件需要被 Apache 用户(可能是 www-data)读取才能提供服务。目录是不同的,因为大多数用户都能够在目录上执行以查看包含的文件列表,而不管他们是否可以读取其中包含的文件。

于 2012-05-17T15:48:31.600 回答
0

尝试使用chmodor chgrp(在最坏的情况下,chown)设置适当的权限,以至少通过 Apache Web 服务器读取和执行文件。

于 2012-05-22T14:08:51.283 回答