Trabajo con una configuración como esta, por lo que puedo darle algunos consejos sobre cómo hacer esto. He estado haciendo esto por un tiempo, resolviendo las fallas aquí y allá, y siento que esta es una configuración que honestamente puedo decir que es bastante productiva.
Nota pequeña: trabajo en OSX, por lo que las aplicaciones específicas utilizadas pueden ser un poco diferentes de usted si usted es un usuario de Linux/Windows.
Ejecuto un 'servidor' de producción en mi Mac, usando MAMP (www.mamp.info) para facilitarme fácilmente un servidor Apache con PHP y MySQL. Puede usar una herramienta similar como XAMPP o instalar todo manualmente, depende de usted.
Luego tengo mis servidores en vivo, donde se alojan mis sitios web y sitios web de clientes. Para cada nuevo proyecto de sitio web (tomemos abc.com como ejemplo), creo un subdominio llamado staging.abc.com, en el cual hago mi prueba. Siempre es bueno probar cosas con exactamente el mismo hardware y software antes de realmente comenzar a funcionar.
Utilizo Subversion (o en resumen, SVN) para mis necesidades de control de versiones, con la ventaja añadida de que puedo agregar fácilmente 'ganchos' para actualizar automáticamente mi servidor de producción en línea cada vez que envío mi versión actualizada al servidor SVN.SVN también le permite trabajar fácilmente con más de una persona en el mismo proyecto. Para obtener más información sobre SVN y cómo usarlo, sugiero el gran libro en línea (y gratuito) que se encuentra aquí: http://svnbook.red-bean.com/
En resumen: Trabajo localmente con MAMP proporcionándome un servidor local de "trabajo". Después de eso, pruebo en línea en una ubicación de staging.abc.com para ver si todo funciona bien, y para permitir que otros vean el proyecto (en caso de que desee que su cliente vea lo que está sucediendo, por ejemplo), y después de eso, realmente publico el proyecto poniéndolo en el dominio real.
Hay muchas cosas más que se pueden hacer para optimizar su flujo de trabajo, pero esto debería ayudarlo a comenzar.
Espero que esto ayude!
-Dave
¿Por qué rsync si puede verificar su revisión actual desde SVN en el servidor? –
¿Cómo se hace un seguimiento de los cambios en la base de datos? Intento agregar cambios como sql en un dir/sql separado, pero a veces me olvido de hacer eso; que me deja con un compromiso "roto". – bouke
@bouke - ver cinco series de partes vinculadas en esta publicación http://www.codinghorror.com/blog/archives/001050.html – aleemb