Dlaczego Mac OS X Lion Apache DocumentRoot / usr / htdocs?

15

Jestem zaskoczony.

Nie widzę, gdzie /usr/htdocsjest określony jako DocumentRoot dla apache2 w Mac OS X Lion.

Jest to domyślny DocumentRoot w nowej instalacji OSX Lion.

Czy ktoś może wskazać mi, gdzie to jest określone?

Zajrzałem do całego /etc/apache2katalogu i nie mogłem znaleźć tej reguły.

vinhboy
źródło
nic w /etc/apache2/available-sites/*konfiguracjach?
ragnq
Domyślna konfiguracja OSX nie korzysta ze struktury dostępnych witryn ani włączonych witryn.
vinhboy,
1
To nie jest. Wykorzystuje nową instalację OS X Lion /Library/WebServer/Documents, podobnie jak główne wydania przed Lionem, gdzie również wskazuje przycisk Otwórz folder witryny komputera… w Preferencjach systemowych »Udostępnianie» Udostępnianie sieci . Czy zainstalowałeś menedżera pakietów, takiego jak Homebrew, Fink lub MacPorts; XAMPP lub podobne rozwiązanie Apache? Jakie jest wyjście which httpdi ps aux | grep httpdw terminalu?
Daniel Beck
Nie zainstalowałem żadnego z tych menedżerów pakietów. Ale dzięki, popatrzę tą ścieżką. Widzę /Library/WebServer/Documentsdyrektywę w pliku httpd.conf. Jednak jest to oczywiście nadpisywane gdzie indziej. Próbowałem śledzić wszystkie odniesienia do innego pliku .conf, ale nie miałem jeszcze szczęścia.
vinhboy,
Dlaczego nie grepna /usr/htdocsna komputerze i zobaczyć gdzie jest nadpisane? - (/ cc @dan, nie dostałeś na to odpowiedzi)
slhck 18.11.11

Odpowiedzi:

14

Gdy „Udostępnianie Internetu” NIE jest włączone, pobiera się /usr/htdocsjako root. Gdy włączysz „Udostępnianie Internetu”, plik konfiguracyjny zostanie pobrany /etc/apache2/httpd.conf. Katalog zostanie podany w pobliżu następującej sekcji pliku.

<IfDefine WEBSHARING_ON>
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Library/WebServer/Documents"

Możesz także użyć katalogu „Witryny” podczas /Users/USERNAME/Sitesuzyskiwania dostępu za pomocą localhost/~USERNAME.

timoto
źródło
Spot on. Zwróć też uwagę na wiersz ServerRoot "/usr"- przy WYŁĄCZONYM Udostępnianiu Internetu i bez określenia alternatywnego DocumentRoot, wydaje się, że domyślnie Apache szuka w htdocsobrębie zdefiniowanego katalogu głównego serwera.
rymo
Czy to prawda, że ​​niektóre <IfDefine WEBSERVICE> należy komentować, ponieważ jest to WEBSERVICE?
Gucho Ca
0

Najpierw włącz udostępnianie sieciowe, przejdź do preferencji systemowych -> udostępnianie, a następnie włącz udostępnianie internetowe. Napisałem o tym post.

dimas.priyanto
źródło
Czy możesz dodać więcej szczegółów? Twój post zawiera więcej informacji niż to, co powiedziałeś tutaj.
Simon Sheehan
więc napisał post, idź, przeczytaj go i skonfiguruj udostępnianie stron internetowych w lwie))) Ja też to zrobiłem, wcześniej mam folder „Witryny” w moim domowym katalogu i wszystko działa.
holms
0

To pytanie pomogło mi dzisiaj rozwiązać identyczny problem na SnowLeopard. Uwaga: to było httpd.confw /private/etc/apache2 nie /etc/apache2 (które również istnieje), który został czytać i wskazał /Library/WebServer/Documentsw moim przypadku.

Mam nadzieję, że to pomaga (inni też).

P Marecki
źródło
Cały folder / etc jest linkiem do / private / etc, więc oba są jednym i tym samym.
Fireandlight27,
@ Fireandlight27 Nie sądzę, żeby było na SL, bo inaczej bym nie napisał. Cieszę się, że są one powiązane w twoim przypadku; która wersja systemu operacyjnego?
P Marecki,