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

14

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 ao criar meus virtualhosts. Eu queria criar subdomínios diferentes no meu host local. Por exemplo, site1.localhost e site2.localhost.

No meu /var/www/diretório, 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 minha configuração do apache eu 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. Pesquisei no Google e encontrei algumas pessoas com o mesmo problema, mas todas as respostas fornecidas lá não deram certo. Eu adicionei meu próprio nome de usuário ao grupo www-data e coisas assim.

Então ls -la /var/wwwretorna:

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/site1retorna:

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 :-)

user300279
fonte

Respostas:

5

Essas permissões estão impedindo o apacheacesso a você

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

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

chmod o+x /home/juul/Workspaces/

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

muru
fonte
de acordo com a resposta do @muru, verifique se todo o diretório que contém o conjunto de permissões "x". Se a pessoa não tem, então ele nunca vai funcionar
dawez
3

Eu tenho uma instalação padrão do apache no 14.04. Não há arquivos ou diretórios especificando "www-data". Você mesmo mudou tudo isso? 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 isto, "site1" deve estar no htmldiretório e pertencer a você. Realmente não precisa ser um link simbólico; você pode especificar um diretório diferente no arquivo de configuração. Algo assim:

# 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>
Marty Fried
fonte
1

Solução: Link simbólico não permitidos ou destino do link não está acessível: /var/www/html/mySymbolicLink.

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

A soluçã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 do CentOS, fiz como:

sudo usermod -a -G dev apache

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

Em /home:

chmod g+x dev -R

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

Roberto Aguilar
fonte