Desarrollo de la stack LAMP Ubuntu de VirtualBox, con SVN y CruiseControl / phpUnderControl?

Tengo una máquina con Windows 7 en la que hago PHP / MySql Dev y encoding .NET / C # / Sql Server. Debido a una reciente reinstallation, pensé que podría ser un momento ideal para tratar de mantener mi máquina un poco más limpia en lugar de instalar tanto Apache como IIS, etc.

Instalé VirtualBox, con Ubuntu 10.04 como sistema operativo invitado, con el plan de mover mi desarrollo de PHP desde mi antigua plataforma de Windows / Apache / MySql a esta image virtual. Además de esto, quiero agregar CruiseControl / phpUnderControl a mi process de desarrollo de PHP.

Hasta ahora tengo Ubuntu 10.04 instalado con una stack LAMP, más Netbeans para PHP, MySQL Workbench, etc., que es efectivamente el mismo que mi antiguo desarrollador de Windows configurado, pero ahora también he instalado SVN y CruiseControl (I ' todavía no he instalado phpUnderControl, pero ese es el próximo paso).

Mi pregunta es, ¿puedo usar esta image virtual como mi entorno de desarrollo "local" y como server de compilation, para no tener que ocupar mi máquina de Windows nativa con el software relacionado con MySql / PHP (lo que significa que puedo mantenerlo bien). y limpio para el desarrollo de .NET)?

Me imagino que necesitaría el server web virtual para poder servir tanto una versión de desarrollo "local" de cualquier proyecto en el que esté trabajando, como una versión provisional, que se comstackría usando cruisecontrol / svn commits.

¿O debería separar mis serveres de compilation y desarrollo, tal vez mantener el desarrollo local en Windows y solo usar la image virtual para el server de compilation? o tal vez tener dos máquinas virtuales separadas para diferentes propósitos?

Agradecería algunos consejos sobre la mejor manera de configurar esto. Uno de los proyectos en los que quiero trabajar es bastante complejo, así que quiero asegurarme de que lo entiendo de la manera correcta antes de comenzar el proyecto, de modo que pueda garantizar que el proyecto se mantenga bien con control de versiones, testings unitarias e continuous integration. , si alguna vez necesito involucrar a otros desarrolladores en el proyecto.

Si está buscando mantener su caja de Windows limpia de las herramientas de MySQL / PHP, le recomiendo encarecidamente el enfoque de dos máquinas virtuales. Una distribución de Linux de escritorio para el desarrollo con LAMP, etc. para el cambio rápido de código / debugging y una que refleja la installation real de su server (con la adición de svn, etc.) para sus comstackciones de testing.

Esto le brinda grandes beneficios tanto para tener un entorno de desarrollo agradable como para tener un server de testing que refleje la operación de su código en el server en vivo. De esta forma, puede mantener actualizada su VM de entorno de desarrollo con las últimas actualizaciones para la distribución (kernel, herramientas, etc.) y mantener la VM de compilation en las versiones de aplicaciones que estén en la máquina en vivo. Esto elimina las conjeturas de "¿es la nueva versión de la biblioteca X o mi código?".

Si quieres ir un poco exagerado, en realidad querrías 3. Uno para dev, uno para SVN / continuous integration y uno que refleje exactamente tu server para que puedas probar la implementación / configuration del sistema.

Si está considerando tener su máquina virtual para desarrollo, ¿por qué no configurarla exactamente como lo haría con su entorno de producción / producción?

Además, puede configurar su máquina virtual para alojar el depósito de código y el server web, y luego conectar sus herramientas que son locales a su máquina host (Windows). De esta forma, puede desarrollar en su caja de Windows, conectada a la VM.

Esto le da la capacidad de hacer todo en su entorno local mientras simula el entorno del server en su máquina virtual.

VirtualBox también hace muy bien las networkinges, y usted debe poder hacer que su host de Windows se conecte a través de la networking al server como si fuera realmente otro nodo en la networking.