Minęło trochę czasu, odkąd korzystałem z serwera WWW Apache httpd. Odpalam lokalny serwer dla projektu i kiedy próbuję zażądać localhost / index.html, pojawia się błąd 500 i widzę to w dzienniku błędów:
[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
Wygląda na to, że w konfiguracji Apache prawdopodobnie są 2 błędy, jeden związany z „AuthType not set!” i prawdopodobnie inny związany z „filtrem nie został dodany: DEFLATE”. Nie wiem, co to oznacza ani od czego zacząć.
Podstawowe wyszukiwanie w Google ujawniło ten link, który wskazuje, że winowajcą może być „Żądaj wszystkich danych”. Ta linia w moim httpd.conf może być zaangażowana.
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
Ta konfiguracja Apache jest głównie używana w produkcji dla tego projektu, więc wiem, że to działa, ale obecnie nie na mojej stacji roboczej. Co to oznacza i co powinienem spróbować dalej? Próbowałem wykomentować „Wymagaj wszystkich danych” i zrestartować Apache, ale bezskutecznie.
Po tym pytaniu SO załadowałem również mod_authz_host
LoadModule authz_host_module modules/mod_authz_host.so
i dodano „Zezwól wszystkim”, zrestartowałem serwer. ale problem nadal występuje. Wydaje się, że problem deflacji nie jest powiązany i można go łatwo rozwiązać, dodając
LoadModule deflate_module modules/mod_deflate.so
Pozostaje pytanie, jak rozwiązać ten błąd 500?
[Tue Jan 21 09:44:20 2014] [crit] [client ::1]
configuration error: couldn't perform authentication.
AuthType not set!: /index.html
Problem tutaj można sformułować w inny sposób: jak zrobić konfigurację, która działa zarówno w Apache 2.2, jak i 2.4?
Require all granted
jest tylko w 2.4, aleAllow all ...
przestaje działać w 2.4 i chcemy mieć możliwość wdrożenia konfiguracji, która działa w obu.Jedyne rozwiązanie, które znalazłem, a nie jestem pewien, jest właściwe, to użycie:
To powinno rozwiązać twój problem, a przynajmniej dla mnie. Teraz problem prawdopodobnie będzie znacznie trudniejszy do rozwiązania, jeśli masz bardziej złożone reguły dostępu ...
Zobacz także to dość podobne pytanie . Debian wiki zawiera również przydatne instrukcje dotyczące obsługi 2.2 i 2.4 .
źródło
Alternatywnie, to rozwiązanie działa zarówno z Apache2 w wersji <2.4, jak i> = 2.4. Upewnij się, że moduł „wersja” jest włączony:
Zamiast tego użyj tego kodu:
źródło
Po prostu usuń / skomentuj następujący wiersz z pliku httpd.conf (etc / httpd / conf)
Wymagaj wszystkich przyznanych
Jest to potrzebne do Apache w wersji 2.2 i od tej pory nie jest wymagane.
źródło
Myślę, że masz wersję 2.4.x Apache.
Czy jesteś pewien, że ładujesz te 2 moduły? - mod_authn_core - mod_authz_core
PS: Moje zalecenia dotyczące autoryzacji i praw to (domyślnie):
źródło
httpd -l
?Możesz spróbować,
sudo a2enmod rewrite
jeśli używasz go w swoim config.źródło