erro 403 após a atualização para o apache2.4

34

Após a atualização do servidor Ubuntu 13.04, as páginas www não serão exibidas.

  

Erro 403 Proibido Você não tem permissão para acessar / neste servidor.

Alterei as salvações de controle de acesso do apache2.2 para o apache2.4, mas isso não funcionou. O que mais eu poderia fazer?

    
por user205336 20.10.2013 / 22:53

3 respostas

59

O que aconteceu é que a sintaxe dos arquivos de configuração no apache2.4 foi alterada.

Fonte: Isso aconteceu comigo depois que fiz o upgrade para 13.10

arquivos conf.d

Todos os arquivos que estavam em /etc/apache2/conf.d devem ser movidos para /etc/apache2/conf-available .

Eles agora funcionam da mesma maneira sites e mods work. Basta colocar seus arquivos conf na pasta conf-available e ativar o que você deseja com a2enconf <config-file-name> .

Exemplo:

Eu tinha um arquivo conf.d/httpd.conf que tinha a diretiva ServerName.
Para fazer isso funcionar, tive que movê-lo para o diretório conf-available e ativá-lo manualmente.

sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd

arquivos de sites

Anteriormente, os arquivos em /etc/apache2/sites-available não tinham extensão. Por exemplo, /etc/apache2/sites-available/default . Agora, é necessária uma extensão .conf .

Exemplo:

Se você tivesse /etc/apache2/sites-available/some-site , em 13.04 você pode ativá-lo usando sudo a2ensite some-site . Agora, você receberá um erro dizendo

  

ERRO: Site algum site não existe!

Para corrigir isso, anexe um .conf a todos os seus arquivos de configuração em sites-available . Você pode fazer o mesmo em sites-enabled , ou você pode excluir todos os arquivos e reativá-los manualmente. Eu recomendo fazê-los manualmente, pois você provavelmente precisará corrigir cada VHost (próximo passo). / em>

sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;

se você decidiu fazê-las manualmente:

sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name

Diretivas de host virtual:

permitir / negar vs Exigir

Se você tivesse o seguinte:

<Directory /path/to/your/site/>
    order allow,deny
    allow from all
</Directory>

Deve se tornar:

<Directory /path/to/your/site/>
    Require all granted
</Directory>

Para mais informações, consulte os comentários por DaveRandom numa resposta no Stack Overflow.

Simplificando, se você atualizou para o apache2.4 e manteve o antigo httpd.conf do apache2.2, permita que diretiva continue funcionando bem. Se você atualizou seu httpd.conf (o que eu sugeriria), você receberá 403 erros até alterar as diretivas Order / Allow / Deny para seu equivalente Require .

Opções de diretório

Se você tivesse opções de Diretório, observe que todas elas precisam ser adicionadas com + ou - ou nenhuma delas. Uma mistura de ambos não é permitida:

Exemplo:

Isso é permitido:

<Directory /path/to/your/site/>
    Options +Indexes +FollowSymLinks -MultiViews
</Directory>

Então é isso (Observe que esses exemplos não fazem a mesma coisa, o anterior desativa a opção MultiViews , o próximo não):

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks MultiViews
</Directory>

Isso não é mais permitido:

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks -MultiViews
</Directory>

A última opção de configuração emitirá um erro de sintaxe dizendo:

  

Todas as opções devem começar com + ou - ou nenhuma opção pode.

Reinicie o apache

Quando tudo estiver pronto, você precisará reiniciar o servidor apache para que as alterações entrem em vigor:

 sudo apache2ctl restart

Você pode encontrar um detalhado guia de atualização de 2.2 a 2.4 na documentação oficial.

    
por Dan 21.10.2013 / 12:56
0

Eu assumo que os sites estão rodando no seu servidor Ubuntu.

Verifique seu httpd.conf para certificar-se de que sua configuração do DocumentRoot está apontando para o lugar certo.

Verifique se as permissões do arquivo na pasta referenciada pelo DocumentRoot podem ser lidas pelo usuário no qual o servidor da Web é executado.

Verifique se você tem um index.html / index.htm apropriado e que o servidor da Web não está tentando fazer uma listagem de diretórios.

    
por Matt 20.10.2013 / 23:57
-1

Eu estou servindo arquivos de um diretório não-padrão, então para fazer o upgrade eu tive que editar o /etc/apache2/apache2.conf e adicionar:     Opções de índices FollowSymLinks     AllowOverride Nenhum     Exigir tudo concedido

Depois disso, e as alterações recomendadas acima, o erro 403 desapareceu.

    
por kupy pupy 28.06.2015 / 23:30

Tags