如何在 Apache Web 服务器中使用符号链接

Guy*_*ico 5 apache2 symbolic-link

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

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

ln -sd /media/guy/movie1/Movies test
Run Code Online (Sandbox Code Playgroud)

当我坐在服务器上时,如果我单击“测试”,它会打开正确的目录并公开文件。如果我从另一台机器浏览 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"
Run Code Online (Sandbox Code Playgroud)

Dou*_*ies 5

符号链接应该可以正常工作。您可能需要也可能不需要添加该目录,/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
...
Run Code Online (Sandbox Code Playgroud)

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

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

<Directory /media/newhd/test_web/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

确保所有权限(包括父母)均符合要求。您可以逐个目录手动执行此操作,或者:

$ 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
Run Code Online (Sandbox Code Playgroud)

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

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