Sei que essa pergunta é muito solicitada, mas as soluções que vi não funcionaram para mim.
Eu tenho apenas um host virtual ativado e estou tentando habilitar o acesso a uma pasta que não está na raiz do documento
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Alias /movies /home/username/Videos/Movies
<Directory /home/username/Videos/Movies/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Eu defino da /etc/apache2/envvars
seguinte forma
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=public
Certifiquei-me de que / home / nome de usuário / vídeos / e suas subpastas pertencem username:public
, defina as permissões para 777 (depois que o 775 não funcionou) e verifiquei se o usuário www-data
pertence ao grupo public
.
Agora, quando eu navego para http://localhost/movies
eu recebo
[Mon Apr 21 11:28:14.971844 2014] [core:error] [pid 1385:tid 140067725104896] (13)Permission denied: [client 127.0.0.1:46603] AH00035: access to /movies/ denied (filesystem path '/home/username/Videos') because search permissions are missing on a component of the path
Mas quando eu configuro /etc/apache2/envvars
executar o Apache em username
(meu próprio nome de usuário) tudo funciona bem. O problema está relacionado à permissão, mas não vejo como no meu caso; especialmente quando eu defino as permissões para 777
. Alguma ideia?
A versão PS Ubuntu é 14.04, o Apache é 2.4.7 e não editei outros arquivos de configuração.
fonte
/home
com a ACL ativada? (há um sinal "+" no final dos bits de permissão se for o caso (consulte ols -l
))Respostas:
Faça um
chmod +x
no diretório do usuário e reinicie o apache. Permissões 755 devem funcionar. Eu tive problemas com o 644 .fonte
namei -m /home/youruser/public_html/yourfile.ext
ou tentar people.apache.org/~igalic/hacks/parsepath/home/username
para acessá-la rapidamente.Se, no caso de o selinux ser o problema, em vez de apenas desativá-lo, esta página e esta página fornecem o comando para conceder acesso:
fonte
~/public_html/
parte pelo diretório raiz do conteúdo que eu estava tentando veicular.chcon -R -t httpd_sys_content_t /var/www/html/phpmyadmin/
(na minha situação)Você pode ter o selinux ativado. Experimentar
Se aparecer "Executando", tente
e tente se isso resolver seu problema.
fonte
Encontrei o mesmo problema, depois de horas tentando, encontrei uma solução que resolve exatamente o problema:
https://wiki.apache.org/httpd/13PermissionDenied
Basicamente, o servidor Apache não requer apenas permissões de leitura de todos os arquivos que ele serve, mas também a permissão de execução de todos os diretórios no caminho do seu host virtual.
O utilitário namei pode ser usado para ajudar a encontrar problemas de permissões, listando as permissões ao longo de cada componente do caminho:
No meu caso, um diretório no meu caminho tem a permissão 700, causa o problema. Depois de alterá-lo para 701, o problema foi resolvido.
fonte
Eu estava enfrentando esse problema quando estava tentando executar o apache em um contêiner de docker em um host Ubuntu 16.04 que usava o kernel 4.4 em vez da 4.10.
Depois de executar este comando no host e reimplantá-lo, fiquei bem:
fonte
chmod
ouchown
dentro do contêiner, e suprime os erros do Apache 403 por um tempo, apenas para reverter algum tempo depois. Não há reinicialização de contêineres interveniente ou outra alteração substantiva que possa ser a causa disso, pelo que sei. Desde que estou realmente executando o 16.04, tentei instalar esse binário e meus 403s estão paralisados por enquanto. Vou ficar de olho nele, e obrigado!