Como usar um symlink no Apache Web Server

3

Eu instalei o Apache2. Na pasta "var / www / html" eu criei um symlink para um disco rígido diferente que contém vários arquivos de filme. Meu pensamento é que seria fácil acessar os filmes através de um navegador de qualquer computador na minha rede local.

Eu usei a seguinte string de comando enquanto estava no diretório html e criei o symlink:

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

Enquanto estou sentado no servidor, quando clico em "teste", ele abre o diretório correto e expõe os arquivos. Se eu navegar para o apache de outra máquina, ele não mostrará o link simbólico.

Trecho do log de acesso do 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"
    
por Guy D'Amico 12.05.2015 / 04:01

1 resposta

2

Um link simbólico deve funcionar bem. Você pode ou não precisar adicionar o diretório a /etc/apache2/apache2.conf para que o apache saiba que é permitido acessar o diretório não padrão.

Exemplo (nota: eu não uso a opção -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
...

Trecho de "/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>

Certifique-se de que todas as permissões, incluindo os pais, estão em ordem. Você pode fazer isso manualmente, diretório por diretório ou:

$ 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

Agora, existem alguns sistemas de arquivos que não funcionam com o Apache, meu exemplo foi um sistema de arquivos ext4. E alguns discos que são montados automaticamente (o meu não é) precisam de uma entrada fstab para funcionar corretamente.

Caso contrário, ajude-nos a ajudá-lo com um pouco mais de informações, como qualquer /var/log/apache2/*.log de entradas.

    
por Doug Smythies 12.05.2015 / 08:40