Skonfigurowałem Udostępnianie Internetu w Preferencjach systemowych w Mac OS X 10.6 i kliknąłem link, który mi tam podał. Niestety Apache podał mi błąd 403:
Zakazany
Nie masz uprawnień dostępu do /~myusername/index.html na tym serwerze.
Dziennik dostępu wyświetla: 10.0.1.2 - - [30/Jun/2010:16:25:15 -0700] "GET /~myusername/ HTTP/1.1" 403 210
Dziennik błędów wyświetla: [Wed Jun 30 16:26:09 2010] [error] [client 10.0.1.2] client denied by server configuration: /Users/myusername/Sites/
Co ciekawe, dostęp do http: // localhost działa dobrze. Po prostu z dwoma folderami użytkownika, z którymi mam problem, drugi folder użytkownika, nowszy niż aktualizacja mojego systemu, działa dobrze.
Pracowałem już wcześniej na moim komputerze w Leopardzie, więc przeskoczyłem wszystko ~/Sites
do 755, co nie przyniosło nic dobrego. Jakieś sugestie? Przypuszczam, że zrobiłem coś na mojej maszynie, co to spowodowało, ponieważ nie wyobrażam sobie, żeby Apple coś takiego popsuło.
Założyłem PEAR z tymi instrukcjami , ale nie mam pojęcia, czy to może być tego przyczyną.
źródło
Odpowiedzi:
Apple ma dokument pomocy technicznej dla tego problemu . Ustalające problem polega na utworzeniu pliku
/etc/apache2/users/yourusername.conf
( Twoja nazwa użytkownika jest konto krótka nazwa , npdanielbeck
- to zazwyczaj nazwa katalogu domowego w/Users
) o następującej treści:Następnie uruchom
sudo chown root:wheel /etc/apache2/users/yourusername.conf
i uruchom ponownie Apache.źródło
sudo apachectl restart
w swoim terminalu.Aby Apache mógł zobaczyć plik, użytkownik uruchamiany przez Apache jako (prawdopodobnie
www
lub_www
) musi mieć dostęp do katalogów Witryn tych użytkowników. Posiadanie odczytu / wykonania dostępu do treści~/Sites
nie jest wystarczające, ponieważ należy zezwolić na przejście od/
ścieżki do~/Sites
. Więc upewnij się/
,/Users
,/Users/myusername
, i/Users/myusername/Sites
wszyscy mają co najmnieja+x
zgody (bit uruchamianych na katalogach pozwala że klasa użytkownik przemierzać katalogu, nawet jeśli dostęp do odczytu nie jest to dozwolone).Jeśli którykolwiek z tych katalogów nie wyświetla ostatniego
x
zestawu (ten dla „innych”), użyj czegoś takiego,chmod a+x ...
aby ustawić go dla tego katalogu.Jeśli lista ACL dla dowolnego z tych katalogów wskazuje, że użytkownikowi
www
odmówiono dostępu, użyj odpowiednich argumentów,chmod
aby naprawić listy ACL.źródło
Dla porównania poradziłem sobie z tym i żadna z odpowiedzi tutaj nie zadziałała w moim konkretnym przypadku. Konfigurowałem wirtualne hosty, ale co ważniejsze, potrzebowałem moich plików htaccess, aby faktycznie działały.
Zmieniłem opcję „AllowOverride None” na „AllowOverride All” w moim pliku /etc/apache2/users/USERNAME.conf i wszystkie moje strony zaczęły być zabronione.
Zmieniłem go z powrotem, a następnie zmieniłem tylko dla jednej strony w moim pliku httpd-vhosts.conf i tylko ta strona była zabroniona.
Po przejrzeniu dzienników i stwierdzeniu, że problem polegał na przepisywaniu adresów URL i braku FollowSymLinks, wróciłem do pliku USERNAME.conf. Przełączam „AllowOverride None” na „AllowOverride All” i dodałem „Options + FollowSymLinks” w następnym wierszu.
Wszystko zaczęło działać. Pochodzę z używania Xamppa na Windowsie i wiele z tych ustawień było już ustawionych na serwerze dla manekinów takich jak ja.
źródło
Options +FollowSymLinks
działało jak urok.Miałem ten sam problem: moje (stare) konto nie było dostępne, ale konto innego użytkownika, które zostało utworzone po aktualizacji do Lion, działało dobrze.
Po upewnieniu się, że Twój plik /etc/apache2/users/USERNAME.conf wygląda następująco:
zrób rootowany sudo: wheel /etc/apache2/users/USERNAME.conf
wygląda na to, że to ustawienie uprawnień nie jest ustawione podczas aktualizacji systemu operacyjnego, a użytkownik Apache nie może odczytać pliku konfiguracyjnego i zgłasza błąd.
Przynajmniej to dla mnie rozwiązało.
źródło
sudo apachectl restart
po tym ucieknie .aktualizacja dla Lion w 10/2011 Musiałem również dodać
UserDir włączony, więc mój /etc/apache2/extra/httpd-userdir.conf wygląda następująco:
źródło
Kontynuacja rozmowy od początkowych komentarzy do pytania - sprawdź swój
/etc/apache2/httpd.conf
plik. Na moim komputerze mam to:Podejrzewam, że twój został skomentowany. Niejasno pamiętam zmienianie tego ręcznie podczas przejścia z 10,5 do 10,6 i zmiana domyślnego.
Jest to prawdopodobnie oczywiste, ale będziesz musiał użyć
sudo
do edycji pliku, ponieważ będzie on własnością root.źródło
Moja sprawa to katalog XAMPP + Mac OS X 10.7 + w folderze Dropbox (odsyłacz do mojego innego pytania w przepełnieniu stosu)
403 Dostęp zabroniony jest zgłaszany przez Apache, dlatego śledziłem powyższy komentarz, aby zmienić użytkownika w
/XAMPP/xamppfiles/etc/httpd.conf
, zUser nobody
naUser my_user_name
. Uruchom ponownie Apache i działa dobrze.źródło
Prawdopodobnie nie masz włączonych indeksów . Jeśli nie, musisz utworzyć plik indeksu (
index.html
lubindex.php
) lub podać plik jawnie, tjhttp://localhost/~me/mypage.html
.źródło
~myusername
Wierzę, że nie powinieneś w ogóle odwiedzać .http://localhost/
powinien wskazywać na/Users/youruser/Sites/
.