Un entorno de desarrollo Drupal portable con XAMPP y FreeCommander

Uso habitualmente Windows 7 y XAMPP 1.7.1 (por la compatibilidad con Drupal 6.x). Hay proyectos que avanzo en casa y hay otros que avanzo en la oficina. En muchas ocasiones requiero consultar cómo hice algo en tal o cual site y me gustaría poder tenerlos al mismo tiempo.

Portatil
Ir cargando una laptop podría ser ser, pero creo que preferiría otra opción.

USB
Podría tener mi entorno de desarrollo en el USB y trabajar directamente allí. XAMPP tiene versiones portables que se pueden instalar en un USB. XAMPP Lite es incluso más ligera.

Sin embargo, mi experiencia es que es realmente muy lento.

Hosting
Un tiempo probé hacer el desarrollo directamente en un hosting. La ventaja es que el desarrollo se hace en un solo lugar. La desventaja es que la edición via FTP es mucho más lenta.

Además, es una opción vulnerable porque el hosting puede quedar fuera de servicio o haber problemas de conectividad, lo que me ocurrió algunas veces (es para ponerse a pensar, si uno ha puesto bastante de su vida en la red).

Mejor parece ser tener una copia local y sincronizar con una copia en la red.

rsync
rsync es un comando que puede ayudarme a sincronizar un site que estoy desarrollando localmente con otro en un hosting.

Para subir un directorio de Windows a un host Linux puedo usar comandos similares a:

cd drupal-dev
rsync --progress -vKrtDzp --chmod=u+rwx,g+rx,o+rx --exclude='.git/*' --exclude='settings.php' . myuser@myhost:public_html/drupal

Y para bajar el directorio del host Linux al directorio Windows puedo usar algo como:

cd drupal-dev
rsync --progress -vrtzL myuser@myhost:public_html/drupal/. .

Así que podría usar cualquier hosting como un punto central de sincronización de archivos.

Opcionalmente, se podría publicar el site si se toma el trabajo extra de actualizar una base de datos en el hosting.

Dropbox
Dropbox es un servicio que permite sincronizar automáticamente un directorio del disco con otro en la red. Entonces, sincronizo el directorio mydropbox de la casa y luego, en la oficina, espero a que la sincronización automática actualice el directorio mydropbox.

Esto funciona bastante bien para compartir información como documentos, manuales e imágenes entre varias computadoras.

Sin embargo, en el caso de Drupal, los cambios que ocurren en los archivos temporales de la base de datos MySQL sobrecargan mucho el tráfico de la red.

Mejor parece ser deterner la sincronización automática mientras se trabaja y luego reanudarla al final.

FreeCommander
FreeComander, es un navegador de archivos alternativo al Explorador de Archivos de Windows. Es libre y se puede descargar de http://www.freecommander.com/. Hay también versiones portables como la de http://portableapps.com/apps/utilities/freecommander_portable.

FreeCommander tiene una opción para sincronizar directorios:


Esto puede ser más fácil de usar que rsync para el caso de sincronizar con un directorio en un USB. Además, usando las versiones portables, podría tener tanto FreeCommander, como XAMPP en el USB.

Algunas soluciones
  1. Usar un hosting para contener una copia intermedia de todo el árbol de xampplite, y usar rsync para las sincronizaciones.
  2. Usar Dropbox para contener una copia intermedia de todo el árbol de xampplite, cuidando de apagar el programa de sincronización automática al empezar y encenderlo al terminar.
  3. Usar un USB para contener una copia intermedia de todo el árbol de xampplite, y usar FreeCommander para las sincronizaciones.
Cuestión de probar, y ver que otras opciones pueda haber :)

Una idea
Me gustaría que se pudiera poner en el USB un Linux portable, que se pudiera bootear rápidamente y permitiera persistencia, para instalar nuevas cosas (como xampplite) y avanzar proyectos.

Que tuviera un LAMP ligero que corriera en un RAM disk en lugar de sobre el USB, para agilizar las operaciones de lectura/escritura. La escritura en el USB sería al final o cuando fuera conveniente.

Me suena a Druppix :) Cuestión de probarlo también.

Comentarios

  1. Actualmente me está yendo bien con este esquema:

    - Uso Dropbox, con un directorio htdocs
    - Uso XAMPP, con un enlace simbólico htdocs/dropbox -> Dropbox/htdocs
    En Windows 7 no es necesario configurar nada más.
    En Linux, hay que declarar el directorio Dropbox/htdocs en la configuración del apache.
    - En Drupal, uso el módulo backup_migrate para hacer snapshots de la base de datos.
    Cuando voy a otra computadora, Dropbox sincroniza automáticamente Dropbox/htdocs, donde tengo las aplicaciones Drupal.
    Luego, manualmente, hago restore del snapshot que hice en la anterior computadora y listo, base de datos sincronizada.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Debug con Xdebug y Aptana (y Notepad++)

Drupal sí, drupal no

CSS3 para mejorar el breadcrumb de un tema Zen