2009-09-01 17 views
40

Tengo una Mac que puedo ejecutar la versión Leopard (10.5) o Snow Leopard (10.6) de OS X en. Lo estoy usando para hacer pruebas/desarrollo web antes de publicar archivos en mi host de producción.¿Cómo puedo usar el directorio/home en Mac OS X

En el host de producción, la raíz del documento de mi sitio se encuentra en el directorio principal (por ejemplo/home/stimulatingpixels/public_html) y me gustaría duplicar esa ubicación en la Mac. Desafortunadamente, se trata de un marcador de posición oculto y bloqueado en la Mac que se ve como una unidad montada sin nada dentro de la ubicación/home.

Sé por experiencia que no es prudente mover esto y soltar en su propio directorio/home porque las actualizaciones pueden hacer que se borre (y no se almacena en la copia de seguridad TimeMachine, por cierto).

Por lo tanto, la pregunta, ¿hay alguna manera de usar de forma segura/home en una Mac, ya sea Leopard o Snow Leopard?

(Nota: Me di cuenta que es muy Mac específico y va a pedir que en un foro de Apple, así Sólo quería preguntar aquí, además de cubrir todas las bases..)

Actualización: Para ayudar a describir por qué Quiero hacer esto, además del sitio web front-end, también tengo una serie de scripts que me gustaría ejecutar. Uno de los principales objetivos con poder usar el directorio/home (y más específicamente la misma ruta desde la raíz de los servidores) es tal que puede usar las mismas rutas de salida en el mac de desarrollo y usarse en el servidor de producción. Sé que hay formas de evitar esto, pero preferiría no tener que lidiar con eso. El objetivo real es tener todos los archivos en el desarrollo. Mac tiene la misma ruta de archivo de la raíz/del árbol de directorios como servidor de producción.

Otro Actualización: La otra razón por la que me olvidé de mencionar anteriormente para esta es la creación de caminos .htaccess al utilizar la autenticación básica. Como esos caminos provienen de la raíz del sistema de archivos en lugar del docroot del sitio web, terminan yendo a través de "/ home" cuando eso es parte del árbol.

+0

parece que estás utilizando Wordpress u otro CMS que no maneja dev locales súper bien. –

+0

He agregado una actualización arriba. En realidad, se trata más de secuencias de comandos secundarias que las que ejecuto y de que deseen que tengan el mismo recorrido de archivo en el Mac de desarrollo como el servidor de producción. –

+0

Nota: Esto podría ser tan específico de Mac que es mejor preguntar en el sitio de soporte de Apple. Para cubrir todas las bases, estoy preguntando efectivamente lo mismo aquí: http://discussions.apple.com/thread.jspa?threadID=2138336&stqc=true –

Respuesta

55

NOTA: A partir de 2015, ya no utilizo o recomendar este método. En su lugar, utilizo Vagrant para configurar máquinas virtuales para desarrollo y pruebas. Es gratis, relativamente fácil y permite una mejor coincidencia del entorno de producción. Separa por completo el entorno de desarrollo y puede hacer todos los que necesite. Altamente recomendado.Dejo la respuesta original a continuación por el bien de la posteridad.


encontré una respuesta here on the Apple forums.

Para reclamar el directorio /home, edite el archivo /etc/auto_master y comente (o elimine) la línea con /home en ella. Necesitará reiniciar después de esto para que el cambio surta efecto (o, por comentario nilbus, intente ejecutar sudo automount -vc). Esto funciona con Mac OS X 10.5 (Leopard). Su millaje puede variar para diferentes versiones, pero debe ser similar.

Como se señaló en ese mensaje del foro, también se debe tener en cuenta que Time Machine excluye automáticamente el directorio /home y no lo hace una copia de seguridad.


Una nota de advertencia, asegúrese de hacer una copia de seguridad del directorio de /home manualmente antes de hacer una actualización del sistema. Creo que una de las actualizaciones que hice (de 10.6 a 10.7, por ejemplo) eliminó sin previo aviso lo que he almacenado en /home. No estoy 100% seguro de que eso sea lo que sucedió, pero es algo que debe buscarse.

+9

No hay necesidad de reiniciar; acaba de ejecutar: sudo automount -vc –

+0

El enlace al foro de apple está roto. – Juve

+0

Apple cambió el formato de las URL para su foro. Actualicé el enlace para señalar a la nueva ubicación. –

-2

¿Por qué no ejecuta simplemente MAMP y utiliza el directorio de Sites? Puede desarrollar localhost y solo tiene un montón de alias para sus sitios. No estoy seguro de por qué necesita usar específicamente el directorio de inicio.


EDIT: Ok, creo que va sobre la solución de su problema de manera equivocada.

Si se trata de caminos de HTML que están preocupados por el todo con una barra "/" que por defecto a la casa comienzan dierectory.

Si se trata de las referencias en su PHP, entonces usted necesita para crear un mundial (o similar) y configurarlo como la raíz de su sitio. Entonces puede hacer referencia a todo, desde el global y cuando mueve el sitio de desarrollo a producción, todo lo que necesita cambiar es el global.

Tratando en una rotonda manera de desarrollar desde/home porque se ve más como el servidor de producción es una mala idea.

Instale MAMP, cree el global en un lugar alto en la jerarquía y comience a re-referenciar. A la larga, será menos doloroso.

+0

El servidor web no es el problema. Estoy bien con ejecutar Apache. Lo que realmente busco es usar el directorio/home en sí mismo. Las mismas preguntas se aplicarían independientemente del servidor que se utiliza. Agregaré un comentario más arriba, pero la verdadera razón es que tengo un script local que ejecuto y me gustaría poder definir las rutas en mi cuadro de desarrollo local para que coincidan con las de producción. De esa forma, no tengo que lidiar con cambiarlos durante la implementación. –

+0

Simplemente use un enlace simbólico y permita que su script local crea que está operando en el directorio/home. –

+0

Pero esto es lo que usa un entorno como MAMP para ... Entonces puede configurar su entorno de desarrollo de la forma que desee y las rutas deberían ser exactamente iguales. ¿Estás usando rutas relativas o exactas? – Evernoob

8

Poniendo todo junto a los consejos y sugerencias anteriores:

  • edición # /etc/auto_mastercomentario la línea con /home en ella.

  • volver a montar:

    sudo automount -vc

  • crea un enlace lógico al dir mac-ified:

    sudo ln -s $HOME /home/$USER

En ese momento, sus caminos deben coincidir en marcha a sus rutas de producción. env vars seguirá apuntando a /Users/xxxx, pero cualquier cosa que codifique en una ruta en su .bashrc - o, por ejemplo, en ~/.pip/pip.conf - debe ser esencialmente equivalente. Trabajó para mi.

re: "El objetivo real es tener todos los archivos en el desarrollo Mac tienen el mismo archivo de ruta de la/raíz del árbol de directorios como servidor de producción."

En la producción, mi trabajo de despliegue que podría suceder en /opt/projects/projname, así que voy a asegurarme de que mi cuenta puede escribir en /opt/projects e ir de allí. Yo empezaría por hacer algo como esto:

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

Con LVM, Voy a establecer una partición separada para /opt/, y escribir datos de aplicaciones allí en vez de $HOME. Entonces, puedo hacer crecer el sistema de archivos /opt en los casos en que necesito más espacio en disco para un proyecto (LVM es su amigo).

9

Lo probé en Yosemite (OS X 10.10.1) el sudo automount -vc no funcionó, tuve que usar sudo umount /home.

Por lo tanto mi flujo de trabajo sería:

# 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