Apache2 „Wymagaj wszystkich przyznanych” nie działa


12

Mam nową instalację Apache2 na testach Debiana i skonfigurowałem wirtualnego hosta w katalogu takim jak ten:

<Directory "/path/to/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

Jednak pokazuje mi błąd 403 Zabroniony, gdy uzyskuję do niego dostęp, a dziennik błędów pokazuje:

[Mon Sep 23 22:07:57.249276 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of Require all denied: denied
[Mon Sep 23 22:07:57.249349 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of <RequireAny>: denied
[Mon Sep 23 22:07:57.249361 2013] [authz_core:error] [pid 8599] [client 127.0.0.1:49057] AH01630: client denied by server configuration: /path/to/project/some_file

Dlaczego wyświetla się „wynik Wymagaj wszystkich odrzuconych: odrzuconych”, jeśli używam „Wymagaj wszystkich przyznanych” ?

Pliki są czytelne dla każdego użytkownika i na wszelki wypadek próbowałem zmienić właściciela na Apache (dane www) bez powodzenia. Ponadto domyślny host http://localhostdziała normalnie, a phpmyadmin http://localhost/phpmyadminrównież działa.

Wszelka pomoc, którą znalazłem w Internecie, dotyczy zastąpienia dyrektywy Order wymaganiem. Już to zrobiłem. Jaki może być teraz problem?


Dla mnie to wygląda poprawnie. Czy jesteś pewien, że nie jest to żadna inna dyrektywa, która jest bardziej szczegółowa z wymaganiem Odmowa wszystkich?
Richard Salts

Odpowiedzi:


5

Oto dwie rzeczy do wypróbowania:

1) Uruchom, apachectl -taby sprawdzić poprawność składni pliku.

2) Uruchom, apachectl -Saby pokazać, które pliki są analizowane.

Na przykład możesz edytować /usr/local/etc/apache2/2.4/httpd.conf i zgadza się? ... ale jeśli uruchomisz apachectl -S, możesz zobaczyć:

VirtualHost configuration:
*:80                   localhost (/private/etc/apache2/extra/httpd-vhosts.conf:23)

to znaczy. Wirtualny host zastępuje twój httpd.conf i może zawierać własne Require all deniedlub podobne.


3

Skonfigurowałeś autoryzację, ale brak autoryzacji. Tak więc, chociaż opcja „Wymagaj wszystkich przyznanych” zapewni dostęp wszystkim uwierzytelnionym użytkownikom, użytkownicy faktycznie się nie uwierzytelniają.


9
Więc gdzie należy skonfigurować uwierzytelnianie? Niezbyt jasne ...
edi9999,

2
Chociaż technicznie poprawne, nie odpowiada na pytanie. Require all grantedw szczególności zezwala na cały dostęp i nie wymaga uwierzytelnienia. Uwierzytelnianie nie ma sensu, gdy metaforycznie otwierasz szeroko drzwi.
Martijn Heemels

2

Ponieważ korzystasz z AllowOverride Alldyrektywy, możesz również mieć .htaccessplik /path/to/project/. Ten może zawierać nadrzędną dyrektywę.

Sprawdź również, jeśli nie masz żadnego innego parametru w VHost dla przykładu.


Walczyłem z tym błędem. Po wielu przeglądach wszystkich plików konfiguracyjnych Apache znalazłem plik .htaccess z niepoprawną zawartością. Żadna z wiadomości nie wskazywała na to.
Dustin Butler

1

Po zainstalowaniu Wampserver 32 miałem ten sam problem z odrzuceniem przez Apache.

Sprawdziłem i próbuję zmodyfikować httpd.confplik na wiele sposobów przez 3 dni bez powodzenia, obchodząc samouczki Apache i fora internetowe ze słynnym błędem:

AH01630: klient odmówiony przez konfigurację serwera

Byłem całkiem pewien, że nie zdefiniowałem żadnego VirtualHost i żadnego nie ma w pliku httpd.conf.

Na koniec skonfigurowałem serwer pod kątem pliku błędów „debugowania”, co dało mi bardziej interesujący komunikat:

AH01626: wynik autoryzacji Wymagaj lokalnego: odmowa

co z kolei prowadzi mnie do tego postu.

I oto był ukryty w C:\wamp\bin\apache\apache2.4.18\conf\extra\httpd-vhosts.confpliku: niepożądany VirtualHost z wyraźnym „Wymagaj lokalnego”, który oczywiście odrzucił wszystkie moje zapytania spoza serwera.

Teraz opróżniłem ten plik, dopóki nie będę potrzebować VirtualHost, i działa dobrze. W końcu wydaje mi się dziwne, że Wampserver nie tylko wstępnie konfiguruje ten plik bez powiadamiania użytkownika, ale ustawia wartość domyślną, aby „serwer” nie mógł nic obsłużyć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.