2009-09-01 15 views
40

Ho un Mac su cui posso eseguire la versione Leopard (10.5) o Snow Leopard (10.6) di OS X. Lo sto usando per fare sviluppo/test web prima di pubblicare file sul mio host di produzione.Come posso utilizzare la directory/home su Mac OS X

Nell'host di produzione la root dei documenti del mio sito si trova nella directory home (ad esempio/home/stimulatingpixels/public_html) e vorrei duplicare tale posizione sul Mac. Sfortunatamente, il loro è un segnaposto nascosto e di blocco sul Mac che assomiglia a un'unità montata senza che vi sia nulla nella posizione/home.

So per esperienza che non è saggio spostare questo e rilasciare la propria directory/home perché gli aggiornamenti possono causarne la cancellazione (e non vengono memorizzati nel backup TimeMachine, comunque).

Quindi, la domanda, c'è comunque un modo sicuro di utilizzare/home su un Mac sia Leopard o Snow Leopard?

(Nota: Mi rendo conto che è molto Mac specifica e verrà chiesto in un forum di Apple così Volevo solo chiedere qui, oltre a coprire tutte le basi..)

Update: Per aiutare a descrivere perché Voglio farlo, oltre al sito Web front-end, ho una serie di script che mi piacerebbe anche eseguire. Uno degli obiettivi principali con la possibilità di utilizzare la directory/home (e in particolare lo stesso percorso dalla radice del server) è in modo tale che sia possibile utilizzare gli stessi percorsi di output sul mac di sviluppo e utilizzarli sul server di produzione. So che ci sono modi per aggirare questo problema, ma preferirei non doverlo affrontare. Il vero obiettivo è quello di avere tutti i file sullo sviluppo Mac che hanno lo stesso percorso file dalla/radice dell'albero delle directory come server di produzione.

Un altro aggiornamento: l'altro motivo che ho dimenticato di menzionare prima per questo è l'impostazione dei percorsi .htaccess quando si utilizza l'autenticazione di base. Poiché questi percorsi provengono dalla root del file system anziché dal docroot del sito Web, finiscono per passare attraverso "/ home" quando questo è parte dell'albero.

+0

Suona come stai usando Wordpress o in un altro CMS che non gestisce dev locale super-bene. –

+0

Ho aggiunto un aggiornamento sopra. È molto di più sugli script secondari che eseguo e voglio che abbiano lo stesso percorso file su dev Mac come server di produzione. –

+0

Nota: questo potrebbe essere specifico per Mac che è meglio chiedere sul sito di supporto Apple. Per coprire tutte le basi, sto chiedendo effettivamente la stessa cosa qui: http://discussions.apple.com/thread.jspa?threadID=2138336&stqc=true –

risposta

55

NOTA: A partire dal 2015, non uso più né raccomando questo metodo. Invece io uso Vagrant per configurare macchine virtuali per sviluppatori e test. È gratuito, relativamente facile e consente una migliore corrispondenza dell'ambiente di produzione. Separa completamente l'ambiente di sviluppo e puoi fare tutto il necessario. Altamente raccomandato.Lascio la risposta originale qui sotto per i posteri.


ho trovato una risposta here on the Apple forums.

Per recuperare la directory /home, modificare il file /etc/auto_master e commentare (o rimuovere) la riga con /home in essa. È necessario riavviare il sistema dopo questo per rendere effettive le modifiche (oppure, per il commento di nilbus, provare a eseguire sudo automount -vc). Funziona con Mac OS X 10.5 (Leopard). La tua fresatura può variare a seconda delle versioni, ma dovrebbe essere simile.

Come evidenziato a quel post forum, si dovrebbe anche essere consapevoli del fatto che Time Machine esclude automaticamente la directory /home e no Back It Up.


Una nota di avvertimento, assicurarsi di eseguire il backup della directory /home manualmente prima di fare un aggiornamento del sistema. Credo che uno degli aggiornamenti che ho fatto (ad esempio da 10.6 a 10.7) abbia cancellato ciò che ho memorizzato in /home senza preavviso. Non sono sicuro al 100% di quello che è successo, ma è qualcosa di cui essere alla ricerca.

+9

Non è necessario riavviare; basta eseguire: sudo automount -vc –

+0

Il collegamento al forum Apple è rotto. – Juve

+0

Apple ha cambiato il formato degli URL per il loro forum. Ho aggiornato il collegamento per indicare la nuova posizione. –

-2

Perché non si esegue MAMP e si utilizza la directory di Sites? Puoi sviluppare localhost e avere solo un mucchio di alias per i tuoi siti. Non sono sicuro del motivo per cui hai specificamente bisogno di usare la home directory.


EDIT: Ok, penso che si sta andando di risolvere il problema nel modo sbagliato.

Se si tratta di percorsi HTML, si inizia a preoccuparsi di iniziare con una barra "/" che verrà impostata come predefinita nella dierectory principale.

Se sono i riferimenti nel PHP, è necessario creare un globale (o simile) e impostarlo come la radice del sito. Quindi puoi fare riferimento a tutto dal globale e quando sposti il ​​sito da dev a production tutto ciò che devi cambiare è globale.

Provare in un modo round per sviluppare da/home perché sembra più che il server di produzione sia una cattiva idea.

Installare MAMP, creare il globale da qualche parte in alto nella gerarchia e iniziare la rinvio. Sarà meno dolore a lungo termine.

+0

Il server web non è il problema Sto bene con l'esecuzione di apache. Quello che sto cercando è usare la directory/home stessa. Le stesse domande si applicherebbero indipendentemente dal server utilizzato. Aggiungerò un commento sopra, ma il vero motivo è che ho qualche script locale che sto eseguendo e mi piacerebbe poter definire i percorsi sul mio box di sviluppo locale in modo che corrisponda a quelli in produzione. In questo modo, non devo occuparmi di modificarli durante l'implementazione. –

+0

Basta usare un collegamento simbolico e lasciare che lo script locale pensi che funzioni sulla directory/home. –

+0

Ma questo è quello che usa un ambiente come MAMP è per ... Quindi puoi configurare il tuo ambiente dev come preferisci e i percorsi dovrebbero essere esattamente gli stessi. Stai usando percorsi relativi o esatti? – Evernoob

8

Mettere tutto insieme dai consigli e suggerimenti di cui sopra:

  • modificare /etc/auto_master # commento fuori la linea con /home in esso.

  • rimonta:

    sudo automount -vc

  • fare un link simbolico al dir mac-ified:

    sudo ln -s $HOME /home/$USER

A quel punto, i percorsi devono corrispondere-up ai tuoi percorsi di produzione. env vars punta ancora a /Users/xxxx, ma tutto ciò che si codifica in un percorso nel proprio .bashrc - o, per esempio, in ~/.pip/pip.conf - dovrebbe essere essenzialmente equivalente. Ha funzionato per me

re: "Il vero obiettivo è avere tutti i file sullo sviluppo Mac hanno lo stesso percorso file dalla/radice dell'albero delle directory come server di produzione."

sulla produzione, il mio lavoro Deploy potrebbe accadere in /opt/projects/projname, quindi mi limiterò a fare in modo mio conto può scrivere in /opt/projects e passare da lì. Mi piacerebbe iniziare facendo qualcosa di simile a questo:

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

Con LVM, mi misi una partizione separata per /opt/, e scrivere i dati app lì, invece di $HOME. Quindi, posso aumentare il file system /opt nei casi in cui ho bisogno di più spazio su disco per un progetto (LVM è tuo amico.)

9

Ho provato su Yosemite (OS X 10.10.1) il sudo automount -vc non ha funzionato, ho dovuto usare sudo umount /home.

Perciò il mio flusso di lavoro sarebbe:

# 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