no Apache no Ubuntu eu configurei um vhost, mas no navegador continuo recebendo um erro "403 Acesso proibido"; o log diz " Cliente negado pela configuração do servidor: /home/remix/ ".
Procurando a solução online encontrei muitos posts sobre o acesso ao diretório (Permitir de todos, etc), mas que eu saiba já fiz isso. Em httpd-vhosts.conf existe o seguinte código:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/opt/lampp/htdocs/"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/home/remix/"
ServerName testproject
ServerAlias testproject
<Directory "/home/remix/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
eu também adicionei
127.0.0.1 testproject
para o arquivo /etc/hosts.
Além disso, a pasta /home/remix/ contém um arquivo index.html e os vhosts são habilitados em httpd.conf.
Existe alguma coisa que eu não estou vendo?
Edit: Esta é a entrada error_log do Apache:
[Sat Aug 18 09:15:32.666938 2012] [authz_core:error] [pid 6587]
[client 127.0.0.1:38873] AH01630: client denied by server configuration: /home/remix/
Altere sua configuração de autorização:
...para a versão Apache 2.4 do mesmo.
Revise o documento de visão geral de atualização para obter informações sobre outras alterações que você pode precisar fazer - e esteja ciente de que a maioria dos exemplos de configuração e assistência que você encontra no Google (assim como neste site) está se referindo a 2.2.
Verifique as permissões no diretório. Aposto que está configurado para negar acesso a qualquer pessoa além de você, por exemplo:
Se você ver
drwx------
exatamente, então este é o caso. Corrija-o executando:Certifique-se de que o usuário que está executando o
httpd
serviço tenha acesso a esses diretórios."cliente negado pela configuração do servidor" significa que o próprio servidor Linux proíbe o acesso ao arquivo, não o Apache.
Se fornecer acesso através da alteração de permissões / propriedade / associação de grupo não resolver o problema, a causa da rota pode ser o SELinux proibindo o acesso a qualquer pasta que não tenha o contexto SE Linux apropriado, conforme explicado em 'Relocando um Apache DocumentRoot no Selinux' .
setenforce 0
tornando o arquivo acessívelsetenforce 0
torna novamente o arquivo inacessívelEntão com certeza o acesso é proibido pelo SELinux quaisquer que sejam as permissões do arquivo.
Outra pegadinha simples (mas complicada) que pode causar esse problema para as pessoas é quando os diretórios do usuário não estão em /home/* Mas em outro lugar, por exemplo /nethome/*
O userdir.conf fornecido contém algo assim: (mas com Userdir: desativado)
A especificação do Directory assume ~user == /home/user. Basta alterar ou adicionar a especificação de diretório para onde os diretórios pessoais do usuário realmente estão.
Bastante óbvio, mas demorei um pouco para descobrir !! :-P DUH!
por exemplo, ~usuário == /nethome/usuário
Veja também autorização mais aberta nesse Diretório em geral.
No meu caso, eu adicionei o aplicativo (phpMemcacheAdmin), mas negligenciei adicionar as montagens na pilha de implantação, então elas nem estavam lá (coisas do kubernetes) quando ele foi lançado. Passei uma hora brincando excluindo barras extras e alterando permissões e, finalmente, entrei e vi que elas nem estavam lá.
Se você estiver tentando implantar no k8s, verifique se você tem estes (se estiver usando hostPath):