我正在尝试让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
答案 0 :(得分:2)
上周我遇到了同样的问题,解决方案对我来说非常简单。
执行命令
sudo -i -u www-data
然后尝试按目录导航路径。您会在某些时候注意到您无权打开目录。 如果你进入最后一个目录,请检查你是否可以读取文件(例如头部)。
答案 1 :(得分:1)
查看附带的目录。它们至少需要模式711.(drwx--x--x
)
另外,请查看/var/log/apache2/error_log
(或ServerRoot
和ErrorLog
的串联来自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服务器用户帐户访问。