Apache: “AuthType not set!” 500 Kesalahan

98

Sudah lama sejak saya menggunakan web server Apache httpd. Saya menjalankan server lokal untuk sebuah proyek dan ketika saya mencoba untuk meminta localhost / index.html, saya mendapatkan kesalahan 500 dan saya melihat ini di log kesalahan:

[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

Sepertinya ada 2 kesalahan di sini di konfigurasi apache, satu terkait dengan "AuthType not set!" dan mungkin yang lain terkait dengan "filter tidak ditambahkan: DEFLATE". Saya tidak tahu apa artinya ini atau di mana harus mulai menggali.

Pencarian Google dasar mengungkapkan tautan ini yang menunjukkan bahwa pelakunya mungkin "Membutuhkan semua yang diberikan". Baris ini di httpd.conf saya mungkin terlibat.

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

Konfigurasi apache ini sebagian besar digunakan dalam produksi untuk proyek ini, jadi saya tahu ini berfungsi, hanya saja saat ini tidak ada di workstation saya. Apa artinya ini dan apa yang harus saya coba selanjutnya? Saya mencoba mengomentari "Wajibkan semua diberikan" dan memulai kembali apache tetapi tidak berhasil.

Mengikuti pertanyaan SO ini, saya juga memuat mod_authz_host

LoadModule authz_host_module modules/mod_authz_host.so

dan menambahkan "Izinkan dari semua", server restart ,. tapi masalahnya tetap ada. Masalah deflate tampaknya tidak terkait, dan mudah diselesaikan dengan menambahkan

LoadModule deflate_module modules/mod_deflate.so

Pertanyaannya tetap, bagaimana cara mengatasi kesalahan 500 ini?

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

Jawaban:

183

Hapus baris yang bertuliskan

Require all granted

itu hanya diperlukan di Apache> = 2.4

Stefan
sumber
1
Atau sebagai alternatif gunakan sintaks <IfVersion> ... lihat jawaban saya di bawah.
pkout
Perbaikan bagus - terlalu lama untuk menemukannya. Terima kasih!
AlienWebguy
Di OS X MAMP apache 2.2, ubah dari "Wajibkan semua diberikan" menjadi Puaskan Apa
Matilda Yi Pan
49

Masalahnya di sini dapat dirumuskan dengan cara lain: bagaimana cara membuat konfigurasi yang berfungsi baik di apache 2.2 dan 2.4?

Require all grantedhanya di 2.4, tetapi Allow all ...berhenti bekerja di 2.4, dan kami ingin dapat meluncurkan konfigurasi yang berfungsi di keduanya.

Satu-satunya solusi yang saya temukan, yang saya tidak yakin adalah yang tepat, adalah dengan menggunakan:

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

# forward compatibility with apache 2.4
Require all granted
Satisfy Any

Ini akan menyelesaikan masalah Anda, atau setidaknya berhasil untuk saya. Sekarang masalahnya mungkin akan jauh lebih sulit dipecahkan jika Anda memiliki aturan akses yang lebih kompleks ...

Lihat juga pertanyaan yang cukup mirip ini . Wiki Debian juga memiliki instruksi yang berguna untuk mendukung 2.2 dan 2.4 .

anarcat
sumber
Saya sengaja bergabung dengan dua potongan itu agar berfungsi di kedua versi di sini, mohon jangan pisahkan lagi.
anarcat
1
Bekerja seperti pesona. Terima kasih!
Anna Wellington
34

Alternatifnya, solusi ini bekerja dengan Apache2 versi <2.4 serta> = 2.4. Pastikan modul "versi" diaktifkan:

a2enmod version

Dan kemudian gunakan kode ini sebagai gantinya:

<IfVersion < 2.4>
    Allow from all
</IfVersion>
<IfVersion >= 2.4>
    Require all granted
</IfVersion>
pkout
sumber
Anda juga dapat menggunakan jawaban ini untuk menghindari mengaktifkan modul lain: stackoverflow.com/questions/10707186/…
Stefan
3

Hapus / komentari baris berikut dari file httpd.conf Anda (etc / httpd / conf)

Wajibkan semua diberikan

Ini diperlukan hingga Apache Versi 2.2 dan tidak diperlukan sejak saat itu.

CodedCoder
sumber
0

Saya pikir Anda memiliki Apache versi 2.4.x.

Sudahkah Anda yakin bahwa Anda memuat 2 modul ini? - 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: Rekomendasi saya untuk otorisasi dan hak adalah (secara default):

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
sumber
Terima kasih Georgio, sebenarnya saya tidak memiliki modul auth {n | z} _core di direktori modul saya.
pengguna3220334
Anda melihat semua modul ini sama dengan httpd -l?
Georgio
Saya bertanya-tanya, haruskah saya membuatnya secara terpisah? Ini adalah instalasi out of the box 2.2.15 pada CentOS `apachectl -version Server versi: Apache / 2.2.15 (Unix) Server dibangun: 13 Agustus 2013 17: 29: 28`
user3220334
Arf, maaf, Anda menggunakan Apache 2.2.x dan bukan 2.4.x. Modul tidak memiliki nama yang sama. Modulnya adalah: mod_authn_file.c mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic
Georgio
Keren, terima kasih untuk daftarnya, saya menambahkan semuanya dan memulai kembali tetapi saya masih mendapatkan kesalahan.
pengguna3220334
0

Anda dapat mencoba sudo a2enmod rewritejika Anda menggunakannya di konfigurasi Anda.

saian
sumber