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

Схоже, тут в налаштуваннях apache можливі дві помилки, одна пов'язана з "AuthType not set!" і, можливо, інший, пов'язаний з "фільтром, не додано: DEFLATE". Я не знаю, що це означає або з чого почати копати.

Основний пошук Google виявив це посилання, яке вказує на те, що винуватцем може бути "Вимагати всіх наданих". Цей рядок у моєму httpd.conf може бути задіяний.

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

Цей конфігурація apache - це в основному те, що використовується у виробництві для цього проекту, тому я знаю, що це працює, тільки зараз не на моїй робочій станції. Що це означає і що слід спробувати далі? Я намагався коментувати "Потрібно все надано" та перезапустив апаш, але безрезультатно.

Після цього питання я також завантажив 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

Відповіді:


183

Видаліть рядок із написом

Require all granted

це потрібно лише на Apache> = 2.4


1
Або ж використайте синтаксис <IfVersion> ... дивіться мою відповідь нижче.
pkout

Чудове виправлення - знадобилося занадто багато часу, щоб знайти. Дякую!
AlienWebguy

У OS X MAMP apache 2.2 перейдіть із пункту "Вимагати всіх наданих" на "Задовольнити будь-кого"
Матильда Йі Пан

49

Проблема тут може бути сформульована іншим способом: як зробити конфігурацію, яка працює як в апаші 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

Це повинно вирішити вашу проблему, або, принаймні, для мене. Тепер проблему, ймовірно, буде набагато складніше вирішити, якщо у вас є складніші правила доступу ...

Дивіться також це досить схоже запитання . У вікі Debian також є корисні інструкції щодо підтримки 2.2 та 2.4 .


я цілеспрямовано приєднався до двох фрагментів, щоб вони працювали в обох версіях тут, будь ласка, не розлучайте їх знову.
anarcat

1
Працював як шарм. Дякую!
Анна Веллінгтон

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/…
Стефан

3

Просто видаліть / прокоментуйте наступний рядок із файлу httpd.conf (тощо / httpd / conf)

Потрібні всі надані

Це потрібно до версії Apache 2.2 і не вимагається від неї.


0

Я думаю, що у вас є версія 2.4.x Apache.

Ви впевнені, що завантажуєте ці два модулі? - 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

Дякую, Георгіо, насправді в моєму каталозі модулів немає автентичних {n | z} _core модулів.
користувач3220334

Ви все одно бачите ці модулі httpd -l?
Джорджіо

Цікаво, чи варто будувати їх окремо? Це поза встановленою коробкою версії 2.2.15 на версії сервера CentOS `apachectl -version Server: Apache / 2.2.15 (Unix) Сервер побудований: 13 серпня 2013 17: 29: 28`
користувач3220334

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
Джорджіо

Класно, дякую за список, я додав їх і перезапустив, але все ще отримую помилку.
користувач3220334

0

Ви можете спробувати, sudo a2enmod rewriteякщо ви використовуєте його в налаштуваннях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.