Apache: "AuthType ayarlanmadı!" 500 Hatası


98

Apache httpd web sunucusunu kullanmayalı epey oldu. Bir proje için yerel bir sunucu başlatıyorum ve localhost / index.html'yi istemeye çalıştığımda 500 hatası alıyorum ve bunu hata günlüğünde görüyorum:

[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

Görünüşe göre apache yapılandırmasında muhtemelen 2 hata var, biri "AuthType not set!" İle ilgili. ve muhtemelen başka bir "filtre eklenmedi: DEFLATE" ile ilgili. Bunların ne anlama geldiğini veya araştırmaya nereden başlayacağımı bilmiyorum.

Basit bir Google araması , suçlunun "Her şeyin verilmesini gerektir" olabileceğini gösteren bu bağlantıyı ortaya çıkardı . Httpd.conf dosyamdaki bu satır dahil olabilir.

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

Bu apache yapılandırması, çoğunlukla bu proje için üretimde kullanılan şeydir, bu yüzden bunun şu anda iş istasyonumda çalışmadığını biliyorum. Bu ne anlama geliyor ve daha sonra ne denemeliyim? "Tüm izin verilsin" diye yorum yapmayı ve apache'yi yeniden başlatmayı denedim, ancak işe yaramadı.

Bu SO sorusunun ardından mod_authz_host'u da yükledim

LoadModule authz_host_module modules/mod_authz_host.so

ve "Tümünden izin ver" eklendi, sunucuyu yeniden başlattı. ancak sorun devam ediyor. Söndürme sorunu ilgisiz görünüyor ve ekleyerek kolayca çözüldü

LoadModule deflate_module modules/mod_deflate.so

Soru kalır, bu 500 hatasını nasıl çözebilirim?

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

Yanıtlar:


183

Yazan satırı kaldırın

Require all granted

sadece Apache> = 2.4'te gereklidir


1
Veya alternatif olarak <IfVersion> sözdizimini kullanın ... aşağıdaki cevabıma bakın.
pkout

Harika düzeltme - bulması çok uzun sürdü. Teşekkürler!
AlienWebguy

OS X MAMP apache 2.2'de, "Tüm verilmiş olanı gerekli kıl" seçeneğinden Herhangi
Matilda Yi Pan

49

Buradaki sorun başka bir şekilde formüle edilebilir: hem apache 2.2 hem de 2.4'te çalışan bir yapılandırmayı nasıl yapabilirim?

Require all grantedyalnızca 2.4 sürümünde, ancak 2.4'te Allow all ...çalışmayı bırakıyor ve her ikisinde de çalışan bir yapılandırmayı kullanıma sunabilmek istiyoruz.

Doğru olup olmadığından emin olmadığım bulduğum tek çözüm şudur:

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

# forward compatibility with apache 2.4
Require all granted
Satisfy Any

Bu, sorununuzu çözmeli ya da en azından benim için çözdü. Şimdi, daha karmaşık erişim kurallarınız varsa, sorunu çözmek muhtemelen çok daha zor olacaktır ...

Bu oldukça benzer soruya da bakın . Debian wiki ayrıca hem 2.2 hem de 2.4'ü desteklemek için yararlı talimatlara sahiptir .


bilerek iki parçacığa katıldım , böylece burada her iki sürümde de çalışıyorlar , lütfen onları tekrar ayırmayın.
anarcat

1
Bir cazibe gibi çalıştı. Teşekkürler!
Anna Wellington

34

Alternatif olarak, bu çözüm hem Apache2 sürüm <2.4 hem de> = 2.4 ile çalışır. "Sürüm" modülünün etkinleştirildiğinden emin olun:

a2enmod version

Ve sonra bunun yerine şu kodu kullanın:

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

Başka bir modülü etkinleştirmekten kaçınmak için bu yanıtı da uygulayabilirsiniz: stackoverflow.com/questions/10707186/…
Stefan

3

Httpd.conf dosyanızdan (etc / httpd / conf) aşağıdaki satırı kaldırın / yorumlayın

Tüm verilmiş olmayı gerektir

Bu, Apache Sürüm 2.2'ye kadar gereklidir ve bundan sonra gerekli değildir.


0

Apache'nin 2.4.x sürümüne sahip olduğunuzu düşünüyorum.

Bu 2 modülü yüklediğinizden emin misiniz? - mod_authn_core - mod_authz_core

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

Not: Yetkilendirme ve haklar için önerim (varsayılan olarak):

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

Teşekkürler Georgio, aslında modüller dizinimde auth {n | z} _core modülleri yok.
user3220334

Bu modülleri hep aynı görüyor httpd -lmusunuz?
Georgio

Merak ediyorum, bunları ayrı ayrı mı yapmalıyım? Bu, CentOS` apachectl -version Server sürümünde 2.2.15'in kutunun dışında kurulumudur: Apache / 2.2.15 (Unix) Sunucu inşa: 13 Ağu 2013 17: 29:
28`

Arf, üzgünüm, 2.4.x değil Apache 2.2.x kullanıyorsun. Modüllerin aynı adı yoktur. Modüller: mod_authn_file.c mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic
Georgio

Harika, liste için teşekkürler, hepsini ekledim ve yeniden başlattım ama yine de hatayı alıyorum.
user3220334

0

sudo a2enmod rewriteYapılandırmanızda kullanırsanız deneyebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.