代码之家  ›  专栏  ›  技术社区  ›  Jim

如何设置以下符号链接?

  •  1
  • Jim  · 技术社区  · 16 年前

    我试图让apache遵循一个指向raid阵列服务器的符号链接,该服务器将包含一些大型数据文件。我试过修改 httpd.conf 有这样的条目

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

    要让apache遵循sites文件夹中的任何sym链接。

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

    被禁止的

    您没有访问权限 /~想象/imagelibrarytest/videoclips/imagelibraryvideos/imagelibraryvideos/data13/0002rt-1.mov 在这个服务器上。

    sys link文件是行中最后一个“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 回复  |  直到 10 年前
        1
  •  2
  •   sebasuy    14 年前

    上周我也遇到了同样的问题,解决方法对我来说很简单。

    运行:

    sudo -i -u www-data
    

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

        2
  •  1
  •   Alex M    16 年前

    在封闭的目录中查找。它们必须至少是711模式。( drwx--x--x )

    还有,看里面 /var/log/apache2/error_log (或者不管 ServerRoot ErrorLog 是来自 httpd.conf )以获取可能更详细的错误消息。

    最后,确保在处理完 HTTPD.CONF .

        3
  •  1
  •   warren    16 年前

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

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

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

    /path/to/original /new/path bind defaults,bind 0 0
    
        4
  •  0
  •   Michael Ridley    16 年前

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

    推荐文章