staje się
[Tue Apr 24 12:12:55 2012] [błąd] [klient 127.0.0.1] klient odrzucony przez konfigurację serwera: / labs / Projects / Nebula / bin /
Wygląda jak struktura moich katalogów (używam Symfony 2, powinna mieć podobną strukturę dla innych frameworków internetowych)
Mam konfigurację vhostów, taką jak:
<VirtualHost nebula:80>
DocumentRoot "/labs/Projects/Nebula/web/"
ServerName nebula
ErrorLog "/var/log/httpd/nebula-errors.log"
</VirtualHost>
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
Order allow,deny
Allow from 127.0.0 192.168.1 ::1 localhost
</Directory>
Zastanawiam się, w czym problem i jak go naprawić?
Odpowiedzi:
Apache 2.4.3 (a może nieco wcześniej) dodał nową funkcję bezpieczeństwa, która często powoduje ten błąd. Możesz również zobaczyć komunikat dziennika w postaci „klient odrzucony przez konfigurację serwera”. Ta funkcja wymaga tożsamości autoryzowanego użytkownika, aby uzyskać dostęp do katalogu. Jest włączana przez DEFAULT w pliku httpd.conf dostarczanym z Apache. Możesz zobaczyć włączenie tej funkcji za pomocą dyrektywy
Zasadniczo mówi to o odmowie dostępu wszystkim użytkownikom. Aby rozwiązać ten problem, usuń dyrektywę denied (lub znacznie lepiej) dodaj następującą dyrektywę do katalogów, do których chcesz udzielić dostępu:
jak w
źródło
Satisfy Any
poRequire all granted
Satisfy any
w tym kontekście? Pytam, ponieważ ciągnąłem tutaj włosy i dodając to, wszystko działało dla mnie. Dziwne jest to, że aplikacja działała z istniejącym wpisem vhost do ostatniej aktualizacji Apache do2.4.9
. Jeszcze dziwniejsze jest to, że działa dobrze na innym serwerze z tymi samymi wersjami app / vhost i Apache / PHP. Jednak różne serwery - odpowiednio AWS Linux i Ubuntu 14.10. Dziwne ... Chyba muszę porównaćhttpd.conf
pliki każdego serwera, aby sprawdzić, czy jest tam różnica w konfiguracji ...htaccess
ścieżkę, do której próbujesz się dostaćOK, używam złej składni, powinienem używać
źródło
Require all granted
, jak zasugerował @ Phil-LW Apache 2.4 stara składnia autoryzacji dostępu została wycofana i zastąpiona przez nowy system z wymaganiem .
To, czego chcesz, to coś takiego:
Pozwoli to połączenia, które pochodzą zarówno z lokalnego hosta lub z adresów IP, które zaczynają się od „192.168.1”.
Dostępny jest również nowy moduł, który sprawia, że Apache 2.4 rozpoznaje starą składnię, jeśli nie chcesz od razu aktualizować konfiguracji:
źródło
Czy możesz spróbować zmienić „Zezwalaj z 127.0.0 192.168.1 :: 1 localhost” na „Zezwalaj ze wszystkich”. Jeśli to rozwiąże problem, musisz być mniej restrykcyjny co do tego, skąd można żądać treści
źródło
Oto mój plik wirtualnego hosta symfony 1.4 na Debianie, który działa dobrze.
Jeśli nie chcesz ograniczyć dostępu do określonego zakresu adresów IP, np. Localhost, użyj tego:
Mod_authz_host jest odpowiedzialny za filtrowanie adresów IP. Możesz tam znaleźć szczegółowe informacje.
Ale może problem może być związany z jakąś błędną konfiguracją w pliku „apache2.conf”.
Na jakim systemie operacyjnym działa apache?
źródło
jeśli masz
w httpd.conf, a następnie upewnij się, że mamy
jak w poniższej linii w httpd.conf
źródło
Miałem ten problem z Vesta CP i dla mnie sztuczka polegała na usunięciu .htaccess i ponownej próbie dostępu do dowolnego pliku.
Spowodowało to regenerację pliku .htaccess i wtedy mogłem uzyskać dostęp do moich plików.
źródło
W moim przypadku kluczem było:
w definicji vhost. Mam nadzieję, że to komuś pomoże.
źródło
Ten kod zadziałał dla mnie ...
Mam nadzieję, że to pomoże innym
źródło