Jak mogę korzystać z katalogu / home w systemie Mac OS X

Mam Maca, na którym mogę uruchomić wersję Leopard (10.5) lub Snow Leopard (10.6) OS X. Używam go do tworzenia/testowania stron internetowych przed opublikowaniem plików na moim Hostie produkcyjnym.

Na serwerze produkcyjnym korzeń doc mojej witryny znajduje się w katalogu domowym (np. /home/stimulatingpixels/public_html) i chciałbym powielić tę lokalizację na komputerze Mac. Niestety, ich jest ukryty i zablokowany symbol zastępczy na Macu, który wygląda jak zamontowany dysk z niczym w nim siedzi w miejscu / domu.

Wiem z doświadczenia, że nierozsądne jest przenoszenie tego i wrzucanie do własnego katalogu /home, ponieważ uaktualnienia mogą spowodować jego wymazanie(a tak przy okazji, to nie jest przechowywane w kopii zapasowej TimeMachine).

Więc, pytanie, czy jest i tak bezpiecznie używać / home na Mac albo Leopard lub Snow Leopard?

(uwaga: zdaję sobie sprawę, że jest to bardzo specyficzne dla komputerów Mac i zapytam o to również na forum Apple. Chciałem tylko zapytać tutaj oprócz pokrycia wszystkich bazy.)

Update: aby pomóc opisać, dlaczego chcę to zrobić, oprócz strony front end, mam serię skryptów, które chciałbym uruchomić, jak również. Jednym z głównych celów z możliwością korzystania z katalogu / home (a dokładniej tej samej ścieżki z katalogu głównego serwerów) jest to, że można używać tych samych ścieżek wyjściowych na komputerze Mac deweloperskim, a także na serwerze produkcyjnym. Wiem, że można to obejść, ale wolałbym nie mieć z tym do czynienia. Prawdziwym celem jest aby wszystkie pliki na deweloperskim komputerze Mac miały tę samą ścieżkę plików z katalogu / root drzewa katalogów, co serwer produkcyjny.

Kolejna aktualizacja: innym powodem, o którym zapomniałem wspomnieć wcześniej, jest konfiguracja .ścieżki htaccess podczas korzystania z uwierzytelniania podstawowego. Ponieważ te ścieżki pochodzą z katalogu głównego systemu plików, a nie z katalogu docroot witryny, kończą przechodząc przez "/ home", gdy jest to część drzewa.

Author: Alan W. Smith, 2009-09-01

4 answers

Uwaga: od 2015 roku nie używam już ani nie polecam tej metody. Zamiast tego używam Vagrant do konfiguracji maszyn wirtualnych do dev i testowania. Jest bezpłatny, stosunkowo łatwy i pozwala na lepsze dopasowanie środowiska produkcyjnego. Całkowicie oddziela środowisko programistyczne i możesz zrobić tyle, ile potrzebujesz. wysoce zalecane. Zostawiam oryginalną odpowiedź poniżej dla dobra potomności.


I found an answer here on the Apple forum .

Aby odzyskać katalog /home, Edytuj plik /etc/auto_master i skomentuj (lub Usuń) wiersz z /home w nim. Aby zmiana weszła w życie, musisz ponownie się uruchomić (lub, na podstawie komentarza nilbusa, spróbuj uruchomić sudo automount -vc). Działa to z systemem Mac OS X 10.5 (Leopard). Frezowanie może się różnić w różnych wersjach, ale powinno być podobne.

Jak wspomniano w tym poście na forum, należy również pamiętać, że Time Machine automatycznie wyklucza katalog /home i nie tworzy kopii zapasowej.


Jedna uwaga ostrzegawcza, upewnij się, że wykonasz kopię zapasową katalogu /home ręcznie przed wykonaniem aktualizacji systemu. Wydaje mi się, że jedna z aktualizacji, które zrobiłem (na przykład z 10.6 do 10.7) usunęła to, co zapisałem w /home bez ostrzeżenia. Nie jestem w 100% pewien, że to się stało, ale trzeba na to uważać.

 59
Author: Alan W. Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-14 15:31:51

Próbowałem go na Yosemite (OS X 10.10.1) sudo automount -vc nie działa, musiałem użyć sudo umount /home.

Dlatego mój workflow będzie:

# comment out line starting with /home sudo vi "+g/^\/home/s/\//#\//" "+x" /etc/auto_master sudo umount /home # link actual home directory (/Users/<user>) to new 'home' (/home/<user>) ln -s $HOME /home/$USER

 10
Author: Marco Torchiano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-07 02:43:03

Składając to wszystko razem z porad i wskazówek powyżej:

  • Edytuj /etc/auto_master # skomentuj tekst z /home w nim.

  • Remount:

    sudo automount -vc

  • Zrób softlink do katalogu mac-ified:

    sudo ln -s $HOME /home/$USER

W tym momencie twoje ścieżki powinny pasować do Twoich ścieżek produkcyjnych. env vars nadal będzie wskazywać na /Users/xxxx, ale wszystko, co utkniesz w ścieżce w swoim .bashrc -- lub powiedzmy, w ~/.pip/pip.conf-- powinny być zasadniczo równoważne. Dla mnie zadziałało.

Re: "prawdziwym celem jest to, aby wszystkie pliki na deweloperskim komputerze Mac miały tę samą ścieżkę plików z katalogu / root drzewa katalogów, co serwer produkcyjny."

Na produkcji, moje prace wdrożeniowe mogą się zdarzyć w /opt/projects/projname, więc upewnię się, że moje konto może zapisać się na /opt/projects i przejść stamtąd. Zacząłbym od zrobienia czegoś takiego:

sudo mkdir /opt/projects sudo chown $USER /opt/projects mkdir /opt/projects/projname cd /opt/projects/projname

Z LVM ustawię osobną partycję dla /opt/, i zapisywać tam Dane aplikacji zamiast $HOME. Następnie mogę rozbudować system plików /opt w przypadkach, gdy potrzebuję więcej miejsca na dysku dla projektu (LVM jest twoim przyjacielem.)

 8
Author: KurtB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 13:34:32

Dlaczego po prostu nie uruchomisz MAMPA i nie skorzystasz z katalogu stron? Możesz rozwijać się poza localhost i po prostu mieć kilka aliasów dla swoich witryn. Nie jestem pewien, dlaczego konkretnie trzeba korzystać z katalogu domowego.


Edytuj: Ok, myślę, że zamierzasz rozwiązać swój problem w niewłaściwy sposób.

Jeśli chodzi o ścieżki HTML, o które się martwisz, zacznij wszystko od ukośnika"/", który domyślnie ustawi go na Home dierectory.

Jeśli są to referencje w Twoim PHP, to potrzebujesz aby utworzyć globalny (lub podobny) i ustawić go jako główny element witryny. Następnie możesz odwołać się do wszystkiego z globalnego, a kiedy przeniesiesz witrynę z Dewelopera do produkcji, wszystko, czego potrzebujesz, to zmiana globalna.

Próbowanie w okrągły sposób rozwijać z / home, ponieważ wygląda bardziej jak serwer produkcyjny to zły pomysł.

Zainstaluj MAMP, stwórz globalny gdzieś wysoko w hierarchii i zacznij od nowa. Na dłuższą metę będzie mniej bólu.

 -2
Author: Evernoob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 15:03:47