Apache:“ ไม่ได้ตั้งค่า AuthType!” 500 ข้อผิดพลาด


98

เป็นเวลานานแล้วที่ฉันใช้เว็บเซิร์ฟเวอร์ Apache httpd ฉันกำลังเปิดเซิร์ฟเวอร์ภายในสำหรับโปรเจ็กต์และเมื่อฉันพยายามขอ localhost / index.html ฉันได้รับข้อผิดพลาด 500 และฉันเห็นสิ่งนี้ในบันทึกข้อผิดพลาด:

[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

ดูเหมือนว่าอาจมีข้อผิดพลาด 2 รายการที่นี่ในการกำหนดค่า apache ข้อผิดพลาดหนึ่งที่เกี่ยวข้องกับ "AuthType not set!" และอาจเกี่ยวข้องกับ "ไม่ได้เพิ่มตัวกรอง: DEFLATE" ฉันไม่รู้ว่าสิ่งเหล่านี้หมายถึงอะไรหรือจะเริ่มขุดได้ที่ไหน

การค้นหาพื้นฐานของ Google เปิดเผยลิงก์นี้ซึ่งบ่งชี้ว่าผู้กระทำผิดอาจเป็น บรรทัดนี้ใน httpd.conf ของฉันอาจเกี่ยวข้อง

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

การกำหนดค่า apache นี้ส่วนใหญ่เป็นสิ่งที่ใช้ในการผลิตสำหรับโปรเจ็กต์นี้ดังนั้นฉันจึงรู้ว่ามันใช้งานได้ไม่ใช่ตอนนี้ในเวิร์กสเตชันของฉัน นี่หมายความว่าอย่างไรและฉันควรลองทำอะไรต่อไป ฉันได้ลองแสดงความคิดเห็นว่า "ต้องได้รับอนุญาตทั้งหมด" และรีสตาร์ท apache แต่ก็ไม่มีประโยชน์

ต่อไปนี้คำถาม SO นี้ฉันยังโหลด mod_authz_host

LoadModule authz_host_module modules/mod_authz_host.so

และเพิ่ม "อนุญาตจากทั้งหมด" รีสตาร์ทเซิร์ฟเวอร์. แต่ปัญหายังคงมีอยู่ ปัญหาการยุบตัวดูเหมือนจะไม่เกี่ยวข้องกันและแก้ไขได้อย่างง่ายดายโดยการเพิ่ม

LoadModule deflate_module modules/mod_deflate.so

คำถามยังคงอยู่ฉันจะแก้ไขข้อผิดพลาด 500 นี้ได้อย่างไร

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

คำตอบ:


184

ลบบรรทัดที่ระบุว่า

Require all granted

จำเป็นเฉพาะบน Apache> = 2.4


1
หรือใช้ไวยากรณ์ <IfVersion> ... ดูคำตอบของฉันด้านล่าง
pkout

การแก้ไขที่ดี - ใช้เวลาค้นหานานเกินไป ขอบคุณ!
AlienWebguy

ใน OS X MAMP apache 2.2 เปลี่ยนจาก "Require all given" เป็น Satisfy Any
Matilda Yi Pan

49

ปัญหาที่นี่สามารถกำหนดได้อีกวิธีหนึ่ง: ฉันจะสร้าง config ที่ทำงานทั้งใน apache 2.2 และ 2.4 ได้อย่างไร

Require all grantedอยู่ใน 2.4 เท่านั้น แต่Allow all ...หยุดทำงานใน 2.4 และเราต้องการเปิดใช้งานการกำหนดค่าที่ใช้งานได้ทั้งสองอย่าง

ทางออกเดียวที่ฉันพบซึ่งฉันไม่แน่ใจว่าเป็นวิธีที่เหมาะสมคือการใช้:

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

# forward compatibility with apache 2.4
Require all granted
Satisfy Any

วิธีนี้ควรแก้ปัญหาของคุณหรืออย่างน้อยก็ให้ฉัน ตอนนี้ปัญหาอาจจะแก้ได้ยากกว่ามากหากคุณมีกฎการเข้าถึงที่ซับซ้อนมากขึ้น ...

ดูคำถามที่ค่อนข้างคล้ายกันนี้ เดวิกิพีเดียยังมีคำแนะนำที่มีประโยชน์สำหรับการสนับสนุนทั้ง 2.2 และ 2.4


ฉันเข้าร่วมสองตัวอย่างโดยเจตนาเพื่อให้ใช้งานได้ทั้งสองเวอร์ชันที่นี่โปรดอย่าแยกส่วนย่อยอีก
anarcat

1
ทำงานอย่างมีเสน่ห์ ขอบคุณ!
Anna Wellington

34

หรืออีกวิธีหนึ่งโซลูชันนี้ใช้ได้กับทั้ง Apache2 เวอร์ชัน <2.4 และ> = 2.4 ตรวจสอบให้แน่ใจว่าโมดูล "เวอร์ชัน" เปิดใช้อยู่:

a2enmod version

จากนั้นใช้รหัสนี้แทน:

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

คุณสามารถใช้คำตอบนี้เพื่อหลีกเลี่ยงการเปิดใช้งานโมดูลอื่น: stackoverflow.com/questions/10707186/…
Stefan

3

เพียงลบ / แสดงความคิดเห็นในบรรทัดต่อไปนี้จากไฟล์ httpd.conf ของคุณ (ฯลฯ / httpd / conf)

ต้องได้รับอนุญาตทั้งหมด

สิ่งนี้จำเป็นจนถึง Apache เวอร์ชัน 2.2 และไม่จำเป็นต้องใช้จากนั้น


0

ฉันคิดว่าคุณมี Apache เวอร์ชัน 2.4.x

แน่ใจหรือว่าโหลด 2 โมดูลนี้ - 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: คำแนะนำของฉันสำหรับการอนุญาตและสิทธิ์คือ (โดยค่าเริ่มต้น):

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 จริงๆแล้วฉันไม่มีโมดูล auth {n | z} _core ในไดเร็กทอรีโมดูลของฉัน
user3220334

คุณเห็นโมดูลเหล่านี้เหมือนกันทั้งหมดกับhttpd -l?
Georgio

ฉันสงสัยว่าฉันควรสร้างมันแยกกันหรือไม่? นี่คือการติดตั้ง 2.2.15 บน CentOS 'apachectl -version Server เวอร์ชัน: Apache / 2.2.15 (Unix) เซิร์ฟเวอร์ที่สร้างขึ้น: 13 ส.ค. 2556 17: 29: 28`
user3220334

Arf ขออภัยคุณใช้ Apache 2.2.x ไม่ใช่ 2.4.x โมดูลไม่มีชื่อเดียวกัน โมดูลคือ mod_authn_file.c mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic
Georgio

เยี่ยมมากขอบคุณสำหรับรายการฉันเพิ่มทั้งหมดและเริ่มต้นใหม่ แต่ยังคงได้รับข้อผิดพลาด
user3220334

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.