apache não seguirá links simbólicos | 403 permissão negada

2

Estou usando o Ubuntu 14.04 e tenho um problema com a configuração do Apache:

Eu criei um Symlink de /var/www/html torwards /home/me/myWebDirectory

mas localhost/myWebDirectory renderiza um

403-permission denied

e, de fato, sudo -u www-data ls /home/me/myWebDirectory retorna uma permissão negada também

o apache2.conf tinha a seguinte diretiva:

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

Eu mudei para <Directory /var/www/html> , mas nenhum resultado.

Eu tentei adicionar o usuário me a www-data group com este comando sudo usermod -a -G groupName userName , mas isso não ajudou

o que é que eu perdi?

EDITAR : Eu mudei o grupo de /home/me/myWebDirectory para www-data com direitos rx, mas também não tive sucesso ...

Como eu disse, eu estava bem ciente de que eu tinha um problema de permissão de leitura, pois esse sudo -u www-data ls /home/me/myWebDirectory me devolvia uma permissão negada (o que significa que www-data não tem o direito de ver o que está nele).

Mas eu preciso de um certo ponto de sua resposta para ser mais claro:

Also you should use url "localhost/html" instead of "localhost/myWebDirectory".

Na verdade, eu fiz o Symlink como segue:

  • cd /var/www/html
  • ln -s /home/user/me/myWebDirectory myWebDirectory

então acho que acessar localhost/myWebDirectory é o endereço certo, não?

chown -R www-data:www-data /var/www/html

  • desde o ubuntu 14.04, o Apache DocRoot é /var/www/html , por que eu deveria mudar seu dono (como muitos outros deamons, raízes por padrão).
  • /localhost/testfile.html funciona bem (o arquivo de teste undertsand está em /var/www/html )
  • /localhost/phpmyadmin também funciona, mesmo que seja um SymLink para /usr/share (enquanto eu estou tentando ter um symLink para /home/user ...)

chmod +r /var/www/html # add read permission to dir

chmod +r /var/www/html/* # add read permission to files in dir
  • Adicionar permissão de leitura a quem? para myUser?
  • Mas isso é exatamente o que eu não quero fazer.
  • Na verdade, quero que o apache possa ler em / home / me / myWebDirectory e não myUser para escrever nos diretórios do apache.

NB: Eu sei que há outra maneira de fazer isso, enquanto ativo o apache mod_userdir e é provavelmente o que eu farei em seguida. Mas primeiro eu gostaria de entender como fazer essa solução "simples" funcionar ...

    
por Developpeur tunisie 14.05.2014 / 00:49

2 respostas

1

Eu finalmente resolvi meu problema com a seguinte solução, que possa ajudar alguém no futuro ...

sudo chown me:www-data /home/me
sudo chmod 710 /home/me

sudo chown -R me:www-data /home/me/myWebDirectory

sudo chmod -R g+r /home/me/myWebDirectory

Cuidado: você pode, por exemplo, não querer que todos os subdiretórios sejam legíveis pelo apache, portanto, adapte a diretiva -R (ecursive).

Mas é importante dar ao grupo de usuários do Apache acesso de leitura à sua casa e, em seguida, acessar o bebê em questão.

    
por 14.05.2014 / 17:12
0

O problema existe devido a permissões de leitura ausentes. Execute:

# chmod +r /var/www/html  # add read permission to dir
# chmod +r /var/www/html/* # add read persmission to files in dir
# chown -R www-data:www-data /var/www/html

Além disso, seu shouse usa url "localhost / html" em vez de "localhost / myWebDirectory".

    
por 14.05.2014 / 10:26