Como configurar o apache2 com links simbólicos em / var / www /?

13

Eu quero configurar um servidor web local no meu Ubuntu (14.04). Então eu instalei todo o software para obter um servidor LAMP.

O problema é que eu faço algo errado com a criação do meu virtualhosts. Eu queria criar subdomínios diferentes no meu host local. Por exemplo, site1.localhost e site2.localhost.

No meu diretório /var/www/ eu criei um link simbólico "site1" indo para /home/user/Workspaces/site1 .

No meu arquivo error.log do Apache, recebi o seguinte erro.

[core:error] [pid 12679] [client 127.0.0.1:59006] AH00037: Symbolic link not allowed or link target not accessible: /var/www/site1

Na configuração do meu apache, tenho:

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

Então, acho que há algo errado com as permissões das pastas. Eu procurei no Google e encontrei algumas pessoas com o mesmo problema, mas todas as respostas fornecidas lá não funcionaram. Eu adicionei meu próprio nome de usuário ao grupo www-data e coisas assim.

Então ls -la /var/www retorna:

total 12
drwxrwsr-x  3 user www-data 4096 okt 13 19:08 .
drwxr-xr-x 14 root root     4096 okt  1 22:50 ..
drwxr-xr-x  2 root www-data 4096 okt  1 22:50 html
lrwxrwxrwx  1 root www-data   29 okt 13 19:08 site1 -> /home/user/Workspaces/site1/

e ls -la /home/juul/Workspaces/site1 retornam:

total 24
drwxrwxr-x 4 user www-data 4096 okt 13 18:21 .
drwxrwx--- 3 user user     4096 okt 13 17:31 ..
-rw-rw-r-- 1 user user        0 okt 13 18:21 index.html
drwxrwxr-x 4 user www-data 4096 okt 13 16:12 .metadata
drwxrwxr-x 5 user www-data 4096 okt 13 16:53 Project

Espero que alguém possa me ajudar com isso: -)

    
por user300279 14.10.2014 / 18:27

3 respostas

5

Essas permissões impedem que apache acesse você

drwxrwx--- 3 user user     4096 okt 13 17:31 ..

Você precisa conceder permissões de execução para outras pessoas:

chmod o+x /home/juul/Workspaces/

(e talvez em /home/juul/ também).

    
por muru 14.10.2014 / 20:12
2

Eu tenho uma instalação padrão do apache no 14.04. Não há arquivos ou diretórios especificando "www-data". Você mudou tudo isso sozinho? Há muitas informações desatualizadas ou simplesmente incorretas sobre como configurar servidores da Web, portanto, tenha cuidado com quem você segue e desfaça o que não funciona.

Dito isso, "site1" deve estar no diretório html e pertencer a você. Não precisa realmente ser um link simbólico; você pode especificar um diretório diferente no arquivo de configuração. Algo parecido com isto:

# Add this to the end of the existing 000-default.conf file (after "</VirtualHost>")
<VirtualHost *:80>
    <Directory  /home/user/Workspaces/site1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /home/user/Workspaces/site1
    ServerName site1
</VirtualHost>
    
por Marty Fried 14.10.2014 / 19:18
0

Solução para: link simbólico não permitido ou destino de link não acessível: /var/www/html/mySymbolicLink .

Isso claramente é um problema com as permissões. O problema é que o html em seu diretório home é de propriedade do usuário, e o servidor apache é executado por outro usuário, portanto, não pode acessar seu diretório inicial.

A solução então seria adicionar o usuário executando o apache ao seu grupo, normalmente o mesmo que o seu nome de usuário. Então, na minha caixa CentOS eu fiz como:

sudo usermod -a -G dev apache

Então, adicione o usuário apache ao grupo dev. Agora preciso dar permissões de execução.

Em /home :

chmod g+x dev -R

Isso concederá permissão de execução à minha pasta apenas para os membros do grupo. E é isso. Você precisará modificar o usuário do Apache para o que estiver executando o seu servidor web, eu acredito que para o Ubuntu o usuário é www-data .

    
por Roberto Aguilar 28.02.2016 / 23:15