Apache: "¡AuthType no establecido!" 500 Error


98

Ha pasado un tiempo desde que utilicé el servidor web Apache httpd. Estoy encendiendo un servidor local para un proyecto y cuando intento solicitar localhost / index.html, obtengo un error 500 y veo esto en el registro de errores:

[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 posiblemente haya 2 errores aquí en la configuración de apache, uno relacionado con "AuthType not set!" y posiblemente otro relacionado con "no se agregó filtro: DEFLATE". No sé qué significa esto ni por dónde empezar a investigar.

Una búsqueda básica en Google reveló este enlace que indica que el culpable puede ser "Exigir todo concedido". Esta línea en mi httpd.conf puede estar involucrada.

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

Esta configuración de apache es principalmente lo que se usa en producción para este proyecto, así que sé que funciona, pero no actualmente en mi estación de trabajo. ¿Qué significa esto y qué debo intentar a continuación? Intenté comentar "Requerir todo concedido" y reiniciar Apache, pero fue en vano.

Siguiendo esta pregunta SO , también cargué mod_authz_host

LoadModule authz_host_module modules/mod_authz_host.so

y agregó "Permitir de todos", reinició el servidor. pero el problema persiste. El problema de desinflar parece no estar relacionado y se resolvió fácilmente agregando

LoadModule deflate_module modules/mod_deflate.so

La pregunta sigue siendo, ¿cómo soluciono este error 500?

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

Respuestas:


183

Quita la línea que dice

Require all granted

solo es necesario en Apache> = 2.4


1
O, alternativamente, use la sintaxis <IfVersion> ... vea mi respuesta a continuación.
pkout

Gran solución: tardó demasiado en encontrarla. ¡Gracias!
AlienWebguy

En OS X MAMP apache 2.2, cambie de "Exigir todo concedido" a Satisfacer cualquiera
Matilda Yi Pan

49

El problema aquí se puede formular de otra manera: ¿cómo hago una configuración que funcione tanto en apache 2.2 como en 2.4?

Require all grantedestá solo en 2.4, pero Allow all ...deja de funcionar en 2.4, y queremos poder implementar una configuración que funcione en ambos.

La única solución que encontré, que no estoy seguro de que sea la adecuada, es usar:

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

# forward compatibility with apache 2.4
Require all granted
Satisfy Any

Esto debería resolver tu problema, o al menos lo hizo por mí. Ahora, el problema probablemente será mucho más difícil de resolver si tiene reglas de acceso más complejas ...

Vea también esta pregunta bastante similar . La wiki de Debian también tiene instrucciones útiles para soportar tanto 2.2 como 2.4 .


He unido los dos fragmentos a propósito para que funcionen en ambas versiones aquí, no los vuelva a separar.
anarcat

1
Trabajado como un encanto. ¡Gracias!
Anna Wellington

34

Alternativamente, esta solución funciona tanto con Apache2 versión <2.4 como con> = 2.4. Asegúrese de que el módulo "versión" esté habilitado:

a2enmod version

Y luego usa este código en su lugar:

<IfVersion < 2.4>
    Allow from all
</IfVersion>
<IfVersion >= 2.4>
    Require all granted
</IfVersion>

También puede seguir esta respuesta para evitar activar otro módulo: stackoverflow.com/questions/10707186/…
Stefan

3

Simplemente elimine / comente la siguiente línea de su archivo httpd.conf (etc / httpd / conf)

Requerir todo concedido

Esto es necesario hasta la versión 2.2 de Apache y no es necesario a partir de ahí.


0

Creo que tienes una versión 2.4.x de Apache.

¿Estás seguro de que cargas estos 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

PD: Mi recomendación para la autorización y los derechos es (por defecto):

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

Gracias Georgio, en realidad no tengo los módulos auth {n | z} _core en mi directorio de módulos.
user3220334

¿Ves estos módulos de todos modos httpd -l?
Georgio

Me pregunto, ¿debería construirlos por separado? Esta es la instalación lista para usar de 2.2.15 en CentOS `apachectl -version Server versión: Apache / 2.2.15 (Unix) Servidor construido: 13 de agosto de 2013 17: 29: 28`
user3220334

Arf, lo siento, usas Apache 2.2.xy no 2.4.x. Los módulos no tienen el mismo nombre. Los módulos son: mod_authn_file.c mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic
Georgio

Genial, gracias por la lista, los agregué todos y reinicié, pero sigo recibiendo el error.
user3220334

0

Puede intentarlo sudo a2enmod rewritesi lo usa en su configuración.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.