如何设置FollowSymLinks?

时间:2008-09-17 18:23:08

标签: apache configuration

我正在尝试让Apache遵循符号链接到包含一些大型数据文件的raid阵列服务器。我尝试修改httpd.conf以获得此类条目

<Directory "/Users/imagine/Sites">
  Options FollowSymLinks
  AllowOverride all
  Order allow,deny
  Allow from all
</Directory>

让Apache跟踪Sites文件夹中的任何sym链接。

我一直收到错误返回,似乎表明我没有访问文件的任何权限。错误是:

  

禁止

     

您无权访问   /~imagine/imageLibraryTest/videoClips/imageLibraryVideos/imageLibraryVideos/Data13/0002RT-1.mov   在这台服务器上。

sys链接文件是行中最后一个“imageLibraryVideos”,其中Data13是包含该文件的服务器上的子目录。

0002RT-1.mov文件具有以下权限:

-rwxrwxrwx   1 imagine  staff  1138757 Sep 15 17:01 0002RT-1.mov

并且在这条道路上:

cd /Volumes/ImagineProducts-1/Users/imagine/Sites/imageLibraryVideos/Data13 

该链接指向:

lrwxr-xr-x  1 imagine  staff   65 Sep 15 16:40 imageLibraryVideos -> /Volumes/ImagineProducts-1/Users/imagine/Sites/imageLibraryVideos

4 个答案:

答案 0 :(得分:2)

上周我遇到了同样的问题,解决方案对我来说非常简单。

执行命令

sudo -i -u www-data

然后尝试按目录导航路径。您会在某些时候注意到您无权打开目录。 如果你进入最后一个目录,请检查你是否可以读取文件(例如头部)。

答案 1 :(得分:1)

查看附带的目录。它们至少需要模式711.(drwx--x--x

另外,请查看/var/log/apache2/error_log(或ServerRootErrorLog的串联来自httpd.conf),以获取更详细的错误消息。

最后,确保在弄乱httpd.conf后重启apache。

答案 2 :(得分:1)

您还应该查看绑定挂载而不是符号链接 - 这将允许您在新点重新安装给定路径。以下是一个例子:

mount --rbind /path/to/current/location/somewhere/else /new/mount/point

您还可以编辑fstab以在启动时执行此操作:

/path/to/original /new/path bind defaults,bind 0 0

答案 3 :(得分:0)

这是一个权限问题,其中运行Web服务器的用户对符号链接路径中的必要目录没有读取和/或执行权限。快速简便的检查方法是su - web-user(其中web-user是运行Web服务器的用户帐户),然后尝试cd进入路径并查看文件。当您遇到无权输入的目录时,您必须更改权限和/或所有权,以使其可由Web服务器用户帐户访问。