Я давно не пользовался веб-сервером 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 в основном используется в производстве для этого проекта, поэтому я знаю, что это работает, но сейчас не на моей рабочей станции. Что это значит и что мне попробовать дальше? Я попытался прокомментировать «Требовать все разрешено» и перезапустить 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
Проблема здесь может быть сформулирована иначе: как мне сделать конфигурацию, которая работает как в apache 2.2, так и в 2.4?
Require all granted
есть только в 2.4, ноAllow all ...
перестает работать в 2.4, и мы хотим иметь возможность развернуть конфигурацию, которая работает в обоих.Единственное решение, которое я нашел, но я не уверен, что оно правильное, - это использовать:
Это должно решить вашу проблему или, по крайней мере, для меня. Теперь проблема, вероятно, будет намного сложнее решить, если у вас будут более сложные правила доступа ...
См. Также этот довольно похожий вопрос . В вики Debian также есть полезные инструкции по поддержке версий 2.2 и 2.4 .
источник
Кроме того, это решение работает как с Apache2 версии <2.4, так и с> = 2.4. Убедитесь, что модуль "версия" включен:
А затем используйте вместо этого этот код:
источник
Просто удалите / прокомментируйте следующую строку из файла httpd.conf (etc / httpd / conf)
Требовать все предоставлено
Это необходимо до версии Apache 2.2 и с этого момента не требуется.
источник
Я думаю, что у вас Apache версии 2.4.x.
Вы уверены, что загружаете эти 2 модуля? - mod_authn_core - mod_authz_core
PS: Моя рекомендация по авторизации и правам (по умолчанию):
источник
httpd -l
?Вы можете попробовать,
sudo a2enmod rewrite
если используете его в своей конфигурации.источник