如何在Apache Web Server中使用符号链接

我安装了Apache2。 在文件夹“var / www / html”中,我创建了一个符号链接到另一个包含许多电影文件的HDD。 我的想法是,通过浏览器从本地网络上的任何计算机访问电影都很容易。

我在html目录中使用了以下命令字符串,并创建了符号链接:

ln -sd /media/guy/movie1/Movies test 

如果我点击“测试”,它坐在服务器上会打开正确的目录并公开文件。 如果我从另一台机器上浏览apache,它就不会显示符号链接。

摘自Apache访问日志:

 192.168.1.158 - - [12/May/2015:08:40:07 -0400] "GET /favicon.ico HTTP/1.1" 404 502 "-" "Mozilla/5.0 (X11; Linux i686; rv:24.7) Gecko/20140802 Firefox/24.7 PaleMoon/24.7.1" 192.168.1.158 - - [12/May/2015:08:40:07 -0400] "GET /favicon.ico HTTP/1.1" 404 502 "-" "Mozilla/5.0 (X11; Linux i686; rv:24.7) Gecko/20140802 Firefox/24.7 PaleMoon/24.7.1" 192.168.1.158 - - [12/May/2015:08:40:07 -0400] "GET /favicon.ico HTTP/1.1" 404 502 "-" "Mozilla/5.0 (X11; Linux i686; rv:24.7) Gecko/20140802 Firefox/24.7 PaleMoon/24.7.1" 192.168.1.158 - - [12/May/2015:08:50:38 -0400] "GET / HTTP/1.1" 200 584 "-" "Mozilla/5.0 (X11; Linux i686; rv:24.7) Gecko/20140802 Firefox/24.7 PaleMoon/24.7.1" 192.168.1.158 - - [12/May/2015:08:50:39 -0400] "GET /icons/blank.gif HTTP/1.1" 304 178 "http://192.168.1.178/" "Mozilla/5.0 (X11; Linux i686; rv:24.7) Gecko/20140802 Firefox/24.7 PaleMoon/24.7.1" 

符号链接应该可以正常工作。 您可能需要也可能不需要将目录添加到/etc/apache2/apache2.conf以便apache知道允许访问非标准目录。

示例(注意:我不使用-d选项):

 doug@s15:/var/www/html$ ln -s /media/newhd/test_web bla2 doug@s15:/var/www/html$ ls -l total 44 ... lrwxrwxrwx 1 doug doug 21 May 11 22:14 bla2 -> /media/newhd/test_web ... 

摘自“/etc/apache2/acpahe2.conf”

  Options Indexes FollowSymLinks AllowOverride None Require all granted   Options Indexes FollowSymLinks AllowOverride None Require all granted  

确保所有权限(包括父级)都有序。 您可以手动完成,逐个目录或者:

 $ namei -m /media/newhd/test_web f: /media/newhd/test_web drwxr-xr-x / drwsrwsrwt media drwxr-xr-x newhd drwxr-xr-x test_web 

现在,有些文件系统不能与Apache一起使用,我的例子是ext4文件系统。 并且一些自动挂载的磁盘(我的不是)需要fstab条目才能正常工作。

否则,请帮助我们为您提供更多信息,例如任何/var/log/apache2/*.log条目。