Próbuję ustawić lokalnego środowiska na mój nowy MacBook Air 13" : wbudowany Apache z własną rękę DocumentRoot
, PHP i MySQL zwykle zaktualizować. /etc/hosts
Wystarczy uruchomić moje lokalne strony z ładną odnośnik: local/example
. Dla odniesienia, zwykle czek:
- Jak zamienić Mac OS X Lion w serwer WWW?
- Włączanie Apache w Mac OS X Mountaion Lion
- Uprawnienia Apache
Tym razem ja po prostu się 403 Zakazane błąd za każdym razem uderzę 127.0.0.1
, localhost
albo local
. Najpierw zobaczyłem w terminalu, że zarówno Apache, jak i PHP działają (chociaż nie mogę przeglądać stron PHP); następnie zaktualizowałem wszystkie uprawnienia zgodnie z uprawnieniami Apache ; teraz jestem po prostu zdesperowany. Oto odpowiednie konfiguracje Apache:
/etc/hosts
( wyświetl plik - dodano jedną linię)/etc/apache2/httpd.conf
( wyświetl plik - zaktualizowanoDocumentRoot
)/etc/apache2/users/joao.conf
( wyświetl plik - utworzono ten plik)/etc/apache2/extra/httpd-vhosts.conf
( wyświetl plik - zaktualizowanoVirtualHost
)
Wygląda na to, że Apache w jakiś sposób odmawia mi dostępu do mojego DocumentRoot
(co przy okazji jest ~/Sites
). Ponieważ ~/Sites
tak naprawdę jest dowiązaniem symbolicznym, próbowałem zaktualizować DocumentRoot
za pomocą następujących ścieżek (wszystkie wskazujące na ten sam katalog):
~/Sites
/Users/joao/Sites
/Users/joao/Dropbox/Workflow/Sites
( oryginalny katalog)
Nadal rzucam 403 . Wszelkie pomysły, jak to naprawić / debugować?
Szybka aktualizacja - oto jak /var/log/apache2/joao.pt-error_log
wyglądam:
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
/Sites
(w moim/
folderze głównym ) i umieściłem tam moje pliki, odpowiednio konfigurując opcje Alias i Directory. Działało dobrzeAktualizuję do macOSS Sierra , wersja 10.12
Mam do czynienia z tym samym problemem, zrobiłem dwie rzeczy, aby to naprawić poprawnie. Oto moje podejście.
1) Sprawdź plik „ /private/etc/apache2/extra/httpd-userdir.conf ”. Zmiana
do
2) ** I edytuj swoje „ /etc/apache2/httpd.conf”
zmiana
do
w końcu Twój katalog główny będzie wyglądał następująco:
3) Uruchom ponownie apache
Nadal masz problem, sprawdź, jak skonfigurować Apache w systemie macOS Sierra 10.12
źródło
Zazwyczaj naprawiam to, ustawiając użytkownika Apache dla siebie w środowiskach lokalnych i na komputerach, na których jedynym użytkownikiem, który używa Apache, jestem ja. W
/private/etc/apache2/httpd.conf
ustawUser
swoją nazwę użytkownika z_www
np .:->
Następnie uruchom ponownie Apache:
Dodatkowe kroki:
Jeśli masz aktywne sesje, będą dawać błędy uprawnień, ponieważ nadal są własnością
_www
. Posiadaj je:Implikacje:
Następnie Apache (i PHP i in.) Będą działać tak jak Ty i uzyskają uprawnienia do odczytu / zapisu do wszystkich plików, które masz uprawnienia do odczytu / zapisu. Ale ponieważ jest to tylko lokalne środowisko programistyczne, nie powinno to stanowić problemu, chyba że nie masz reguł blokujących Apache w swojej zaporze ogniowej i nie zezwalasz, aby pod Apache działały podejrzane pliki, takie jak eksploratory plików, powłoki, skrypty; w takim przypadku każdy, w tym twój publiczny sąsiad Wi-Fi w kawiarni, może wejść
http://<your IP>
i zrobić wszystko, na co pozwalają te skrypty.W rzeczywistości powinieneś temu zapobiec bez względu na uruchamiane skrypty, a nawet jeśli nie ustawisz dla siebie użytkownika Apache, ponieważ prawdopodobnie nie chcesz, aby przypadkowi ludzie mogli widzieć jego zawartość
localhost
.Zapobieganie:
Niech Apache nasłuchuje tylko hosta lokalnego. Ponownie w
httpd.conf
:->
I uruchom ponownie Apache ponownie:
Wyłącz Apache w zaporze aplikacji (zwróć uwagę, że mogłeś już go wyłączyć, jeśli kliknąłeś,
Deny
jeśli / kiedy został on zapytany przy pierwszym uruchomieniu Apache):System Preferences
»Security & Privacy
»Firewall
.Firewall Options
.+
przycisk./usr/sbin/httpd
i kliknijAdd
(jeślihttpd
się tam nie pojawi, możesz poszukać go w terminalu przezwhich httpd
)httpd
i wybierzBlock incoming connections
.OK
.Załaduj ponownie zaporę:
Ogranicz PHP do katalogu głównego dokumentu. W
php.ini
:(
/var/tmp/
dotyczy sesji)Użyj wszystkich trzech rozwiązań, aby zabezpieczyć się na wypadek, gdyby jedno z nich zostało wyłączone z jakiegoś powodu.
- Należy pamiętać, że ponieważ mój aktywny język na moim komputerze nie jest w języku angielskim, dobrze wiem, sformułowanie może być nieco inne (opcje menu i brzmienie mogą być różne niezależnie od języka w różnych wersjach systemu OS X).
- Linie zaczynające się od
$
muszą zostać wprowadzone w wierszu poleceń (Terminal lub iTerm itp.), Z$
usuniętymi.źródło
Właśnie rozwiązałem mój problem, ustawiając uprawnienia nie tylko do
DocumentRoot
katalogu, ale także do wszystkich jego katalogów nadrzędnych. Tak to zrobiłem .źródło
Poniższe kroki działały dla mnie na High Sierra z uruchomionym Apache 2.4
(Na podstawie następującego doskonałego samouczka: http://www.cgi101.com/book/connect/mac.html , zaktualizowano o dodatkowe kroki dotyczące różnic wersji)
Przenieś plik do:
Sprawdź, czy plik ma uprawnienia do wykonywania:
Jeśli nie, użyj:
Odkomentuj następujące wiersze w /etc/apache2/httpd.conf
Zmień także sekcję Katalog „/ Library / WebServer / CGI-Executables” na:
Następnie uruchom ponownie Apache:
Niemal z każdą nową wersją systemu macOS zmiany zostaną utracone i konieczne będzie ponowne wykonanie pracy, a nawet wykonanie różnych kroków w celu jej naprawy. Twoim najlepszym przyjacielem są dzienniki Apache znajdujące się w / var / log / apache2 / (/ var / log / apache2 / error_log)
źródło
Korzystałem z list ACL do ustawiania uprawnień, postępując zgodnie z instrukcjami w „ Jak ustawić uprawnienia do plików i katalogów dla Apache w Mac OS X ”, ale nadal otrzymuję:
Potem przeczytałem „ (13) Odmowa dostępu ” (do której link znajduje się w odpowiedzi João Ramosa ) i próbowałem dodać „wykonanie” do ACL. To się udało.
źródło
Zrestartuj swój komputer! To zadziałało dla mnie.
Ale przede wszystkim zmieniłem użytkownika pod Apache na siebie (z _www), ponieważ jest to środowisko lokalne / testowe. Ostatecznie ma to coś wspólnego z uprawnieniami.
Następnie uruchom ponownie komputer, podobnie jak Windows;).
źródło
OP opisuje problem powstający podczas próby skonfigurowania lokalnego środowiska serwera WWW na komputerze Mac przy użyciu Apache, PHP i MySQL z niestandardowym DocumentRoot, a także wzmiankę o korzystaniu z VirtualHost (vhost). OP zgłasza błąd 403 Forbidden podczas uzyskiwania dostępu do localhost.
Artykuł w coolestguidesontheplanet opisuje, w jaki sposób konfiguracja wirtualnych hostów w Apache powoduje „utratę lokalnego hosta”. Innymi słowy, podstawową przyczyną problemu OP może być niepełne włączenie vhostów.
W artykule wyjaśniono, jak naprawić localhost w środowisku vhost.
Wyjaśnia także, jak rozwiązać „problemy z uprawnieniami związane z aktualizacjami i uwierzytelnianiem” związane z „korzystaniem z folderu Users / username / Sites dla vhostów”.
https://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/
źródło