已经为此工作了几个小时,无法让 apache2 遵循符号链接。版本是 debian 7.4。/etc/apache2/sites-enabled/000-default 指向 ../sites-available/default
sites-available/default 看起来像
DocumentRoot /var/www
<Directory />
Options FollowSymLinks Indexes
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
(ssl config)
如果我的网页位于 /var/www,则一切正常。如果我在 /var/www 中创建符号链接:
ln -s /mount/movies/htdocs 电影
并将浏览器指向电影目录中的文件 apache2 日志(在信息和调试日志级别)
[2014 年 2 月 12 日星期三 08:59:53] [错误] [客户端 127.0.0.1] 不允许符号链接或链接目标不可访问:/var/www/movies
路径上的权限为 666,并且全部归 root 所有。
谢谢你的反馈,弗雷德
我试过
chmod -R 555 *
在 /var/www 目录中,没有任何好处。apache2 日志:
[2014 年 2 月 12 日星期三 10:46:20] [错误] [客户端 127.0.0.1] 不允许符号链接或链接目标不可访问:/var/www/movies
谢谢,弗雷德
使用浏览器查看 /var/www 的内容时,符号链接“电影”不会显示。
为了进行测试,我在 /var/www 中创建了一个名为 tools 的目录。我指向 http:// 并看到了 tools 的目录图标。在该目录中,我创建了一个指向挂载上的文件的符号链接。
ln -s /mnt/movies/htdocs/test1.php test1.php
当我点击浏览器中的工具图标时,test1.php 没有显示出来,只有指向父目录的链接。
/tools 索引 [ICO] 名称 最后修改 大小 描述 [DIR] 父目录 -
Apache/2.2.22 (Debian) Debian 端口 80 上的服务器
我不明白为什么服务器没有 1. 在查看目录内容时显示链接,或者 2. 没有按照符号链接来呈现页面。
再次感谢,弗雷德
最终作为一个临时解决方案发挥作用。
我变了
Options FollowSymLinks Indexes
到
Options All
可能是一个安全问题(没有 .htaccess),但这是唯一允许服务器遵循符号链接的东西。
弗雷德
谢谢 Evias,这已经完成了。这不允许 apache2 遵循符号链接。只有当选项设置为 ALL 时,apache 才会遵循符号链接。
最好的,弗雷德
答案1
您已创建目录并在其中/mount/movies/htdocs
创建符号链接。现在的权限和所有权详细信息应如下所示。movies
/var/wwww
/mount
drwxr-xr-x 2 root root 4096 Feb 13 14:35 mount
也就是 755。
如果您的文件夹没有这些权限/mount
,则在创建指向此文件夹的符号链接时,您将收到错误Symbolic link not allowed or link target not accessible:
。因此,请将此文件夹的权限更改为 755。因此,使用此命令更改权限。
解决方案: chmod +x -R /mount
或者chmod 755 -R /mount
。
答案2
为了使 apache 访问链接文件夹,它们必须属于 apache 用户或设置允许其他人访问所提及文件夹的访问权限。