Apache: “AuthType not set!” Erro 500

98

Já faz um tempo desde que usei o servidor da web Apache httpd. Estou iniciando um servidor local para um projeto e quando tento solicitar localhost / index.html, recebo um erro 500 e vejo isso no log de erros:

[Tue Jan 21 09:23:58 2014] [crit] [client ::1] configuration error:  couldn't perform authentication. AuthType not set!: /index.html
[Tue Jan 21 09:23:58 2014] [error] an unknown filter was not added: DEFLATE
[Tue Jan 21 09:23:58 2014] [crit] [client ::1] configuration error:  couldn't perform authentication. AuthType not set!: /favicon.ico

Parece que existem possivelmente 2 erros aqui na configuração do apache, um relacionado a "AuthType not set!" e possivelmente outro relacionado a "filtro não adicionado: DEFLATE". Não sei o que isso significa ou por onde começar a me aprofundar.

Uma pesquisa básica do Google revelou este link que indica que o culpado pode ser "Exigir que todos sejam concedidos". Esta linha no meu httpd.conf pode estar envolvida.

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

Esta configuração do apache é principalmente o que é usado na produção para este projeto, então eu sei que funciona, mas não atualmente em minha estação de trabalho. O que isso significa e o que devo tentar a seguir? Eu tentei comentar "Exigir todos concedidos" e reiniciar o apache, mas sem sucesso.

Seguindo esta pergunta do SO , também carreguei o mod_authz_host

LoadModule authz_host_module modules/mod_authz_host.so

e adicionado "Permitir de todos", reiniciou o servidor. mas o problema persiste. O problema de esvaziamento parece não estar relacionado e foi facilmente resolvido adicionando

LoadModule deflate_module modules/mod_deflate.so

A questão permanece, como faço para resolver este erro 500?

[Tue Jan 21 09:44:20 2014] [crit] [client ::1] 
configuration error:  couldn't perform authentication. 
AuthType not set!: /index.html
user3220334
fonte

Respostas:

183

Remova a linha que diz

Require all granted

é necessário apenas no Apache> = 2.4

Stefan
fonte
1
Ou, alternativamente, use a sintaxe <IfVersion> ... veja minha resposta abaixo.
pkout
Ótima solução - demorou muito para encontrar. Obrigado!
AlienWebguy
No OS X MAMP apache 2.2, mude de "Exigir todos concedidos" para Satisfy Any
Matilda Yi Pan
49

O problema aqui pode ser formulado de outra forma: como faço uma configuração que funcione tanto no apache 2.2 quanto no 2.4?

Require all grantedestá apenas no 2.4, mas Allow all ...para de funcionar no 2.4, e queremos poder lançar uma configuração que funcione em ambos.

A única solução que encontrei, que não tenho certeza se é a adequada, é usar:

# backwards compatibility with apache 2.2
Order allow,deny
Allow from all

# forward compatibility with apache 2.4
Require all granted
Satisfy Any

Isso deve resolver seu problema, ou pelo menos resolveu para mim. Agora, o problema provavelmente será muito mais difícil de resolver se você tiver regras de acesso mais complexas ...

Veja também esta questão bastante semelhante . O wiki do Debian também tem instruções úteis para suportar 2.2 e 2.4 .

anarcat
fonte
Eu propositadamente juntei os dois trechos para que funcionem em ambas as versões aqui, por favor, não os separe novamente.
anarcat
1
Funcionou como um encanto. Obrigado!
Anna Wellington
34

Como alternativa, esta solução funciona com a versão Apache2 <2.4 e também com> = 2.4. Certifique-se de que o módulo "versão" esteja habilitado:

a2enmod version

Em seguida, use este código:

<IfVersion < 2.4>
    Allow from all
</IfVersion>
<IfVersion >= 2.4>
    Require all granted
</IfVersion>
pkout
fonte
Você também pode ir com esta resposta para evitar a ativação de outro módulo: stackoverflow.com/questions/10707186/…
Stefan
3

Apenas remova / comente a seguinte linha de seu arquivo httpd.conf (etc / httpd / conf)

Requer tudo concedido

Isso é necessário até a versão 2.2 do Apache e não é mais necessário a partir daí.

CodedCoder
fonte
0

Acho que você tem uma versão 2.4.x do Apache.

Tem certeza de carregar estes 2 módulos? - mod_authn_core - mod_authz_core

LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so

PS: Minha recomendação para autorização e direitos é (por padrão):

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
Georgio
fonte
Obrigado Georgio, na verdade eu não tenho os módulos auth {n | z} _core no meu diretório de módulos.
user3220334
Você vê esses módulos iguais com httpd -l?
Georgio
Eu me pergunto, devo construí-los separadamente? Esta é a instalação fora da caixa do 2.2.15 no CentOS `apachectl -version Server versão: Apache / 2.2.15 (Unix) Servidor construído: 13 de agosto de 2013 17: 29: 28`
user3220334
Arf, desculpe, você usa Apache 2.2.xe não 2.4.x. Módulos não têm o mesmo nome. Os módulos são: mod_authn_file.c mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic
Georgio
Legal, obrigado pela lista, adicionei todos eles e reiniciei mas continuo recebendo o erro.
user3220334
0

Você pode tentar sudo a2enmod rewritese você usá-lo em sua configuração.

saian
fonte