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

Jawaban:


183

Hapus baris yang bertuliskan

Require all granted

itu hanya diperlukan di Apache> = 2.4


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 .


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>

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.


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

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.