Apache: "AuthType non impostato!" 500 Errore


98

È passato un po 'di tempo da quando ho usato il server web httpd di Apache. Sto attivando un server locale per un progetto e quando provo a richiedere localhost / index.html, ottengo un errore 500 e vedo questo nel registro degli errori:

[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

Sembra che ci siano forse 2 errori qui nella configurazione di Apache, uno relativo a "AuthType non impostato!" e forse un altro relativo al "filtro non è stato aggiunto: DEFLATE". Non so cosa significhino o da dove iniziare a scavare.

Una ricerca di base su Google ha rivelato questo collegamento che indica che il colpevole potrebbe essere "Richiedi tutto concesso". Questa riga nel mio httpd.conf potrebbe essere coinvolta.

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

Questa configurazione di Apache è principalmente ciò che viene utilizzato in produzione per questo progetto, quindi so che funziona, solo che non attualmente sulla mia workstation. Cosa significa e cosa dovrei provare dopo? Ho provato a commentare "Richiedi tutto concesso" e riavviare apache ma senza alcun risultato.

A seguito di questa domanda SO ho anche caricato mod_authz_host

LoadModule authz_host_module modules/mod_authz_host.so

e ha aggiunto "Consenti da tutti", riavviato il server. ma il problema persiste. Il problema dello sgonfiaggio sembra non essere correlato ed è stato facilmente risolto aggiungendo

LoadModule deflate_module modules/mod_deflate.so

La domanda rimane, come posso risolvere questo errore 500?

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

Risposte:


183

Rimuovi la riga che dice

Require all granted

è necessario solo su Apache> = 2.4


1
O in alternativa usa la sintassi <IfVersion> ... vedi la mia risposta di seguito.
uscita

Ottima soluzione: ci è voluto troppo tempo per trovarla. Grazie!
AlienWebguy

In OS X MAMP apache 2.2, cambia da "Richiedi tutto concesso" a Satisfy Any
Matilda Yi Pan

49

Il problema qui può essere formulato in un altro modo: come faccio a creare una configurazione che funzioni sia in Apache 2.2 che 2.4?

Require all grantedè solo in 2.4, ma Allow all ...smette di funzionare in 2.4 e vogliamo essere in grado di implementare una configurazione che funzioni in entrambi.

L'unica soluzione che ho trovato, che non sono sicuro sia quella giusta, è usare:

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

# forward compatibility with apache 2.4
Require all granted
Satisfy Any

Questo dovrebbe risolvere il tuo problema, o almeno lo ha fatto per me. Ora il problema sarà probabilmente molto più difficile da risolvere se hai regole di accesso più complesse ...

Vedi anche questa domanda abbastanza simile . Il wiki Debian ha anche utili istruzioni per supportare sia 2.2 che 2.4 .


Ho unito di proposito i due frammenti in modo che funzionino in entrambe le versioni qui, per favore non separarli di nuovo.
anarcat

1
Ha funzionato come un fascino. Grazie!
Anna Wellington

34

In alternativa, questa soluzione funziona sia con la versione di Apache2 <2.4 che con> = 2.4. Assicurati che il modulo "versione" sia abilitato:

a2enmod version

E poi usa invece questo codice:

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

Puoi anche seguire questa risposta per evitare di attivare un altro modulo: stackoverflow.com/questions/10707186/…
Stefan

3

Rimuovi / commenta la riga seguente dal tuo file httpd.conf (ecc / httpd / conf)

Richiedi tutto concesso

Questo è necessario fino alla versione 2.2 di Apache e da lì non è più richiesto.


0

Penso che tu abbia una versione 2.4.x di Apache.

Sei sicuro di aver caricato questi 2 moduli? - 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: La mia raccomandazione per l'autorizzazione e i diritti è (per impostazione predefinita):

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

Grazie Georgio, in realtà non ho i moduli auth {n | z} _core nella mia directory dei moduli.
user3220334

Vedi questi moduli tutti uguali con httpd -l?
Georgio

Mi chiedo, dovrei costruirli separatamente? Questa è l'installazione predefinita di 2.2.15 su CentOS `apachectl -version Versione server: Apache / 2.2.15 (Unix) Server costruito: 13 agosto 2013 17:29: 28`
user3220334

Arf, scusa, usi Apache 2.2.x e non 2.4.x. I moduli non hanno lo stesso nome. I moduli sono: mod_authn_file.c mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic
Georgio

Fantastico, grazie per l'elenco, li ho aggiunti tutti e riavviato ma ricevo ancora l'errore.
user3220334

0

Puoi provare sudo a2enmod rewritese lo usi nel tuo file config.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.