3 de junio de 2013

Instalar PHING para desplegar Aplicaciones en PHP

Hoy en día, en el desarrollo de apliciones en PHP, es rutinario tener que llevar el código desde el servidor de desarrollo a un servidor de producción.

Habitualmente, esa labor involucra tareas del tipo: cambiar los parámetros de configuración (ej: anular el despliegue de errores de PHP, credenciales de acceso a base de datos), ejecutar las consultas SQL para actualizar la base de datos, mimificar archivos, correr pruebas, etc.

Una labor rutinaria que consume tiempo, y además es propensa a errores. Por esta razón, se han creado herramientas para automatizar el despliegue de nuestro código.

En este artículo, explicaremos la instalación de la herramienta PHING en Linux Ubuntu, que es una versión de APACHE ANT pero para aplicaciones PHP.


¿Cómo instalar PHING?

La instalación de PHING se efectúa desde PEAR, para tal efecto antes debemos instalar pear en linux-ubuntu:

    sudo apt-get install php-pear

Luego registrar el canal pear donde se encuentra PHING.
El comando a ejecutar desde consola es:

    sudo pear channel-discover pear.phing.info

Una vez registrado el canal, es necesario conocer los paquetes disponibles, es decir, las versiones de PHING:

    sudo pear remote-list -c phing

Esto generará una lista, con el nombre del paquete y su verión, por ejemplo podría indicar:

Channel phing Available packages:
=================================
Package   Version
phing     2.5.0
phingdocs 2.5.0

En la lista nos muestra la versión del software, además de un paquete con la documentación. Entonces, procedemos a instalar una versión de PHING 2.5.0:

    sudo pear install phing/phing-2.5.0

Naturalmente, podemos instalar también la documentación de PHING usando el comando: sudo pear install phing/phingdocs-2.5.0

La forma antigua de desplegar el código PHP

En casi cualquier desarrollo web, se da la situación que debemos ampliar las funcionalidades de la aplicación, lo que significa repetidos ciclos de:

  • Modificar y/o crear nuevos módulos en PHP,
  • Hacer cambios la base de datos, como agregar registros a las tablas existentes y/o crear nuevas tablas.
  • Y llevar todos estos cambios (código) manualmente al Servidor de Producción (Desplegar el Código).

Pues todo el proceso de ampliar las funcionalidades de una aplicación web se hace de modo incremental, de modo que el ciclo anterior se repetirá muchas veces en el desarrollo.

Cuando no se contaba de herramientas como PHING, la tarea de llevar todo el código al Servidor de Producción consistía en:

  • Crear un directorio temporal en el Servidor Web de producción.
  • Convertir ese directorio en un Virtual Host, con una URL temporal.
  • Mediate FTP transferir todo el código.
  • Actualizar la base de datos.
  • Correr las pruebas y si todo marcha bien, redireccionar al nuevo código.

PHING junto con otras herramientas de PHP, permiten automatizar el ciclo de liberar código y avanzar hacia un Ambiente de Integración Continua.

Otras Herramientas de Despliegue de Código

Hay otras populares opciones para el 'Deployment' de código, por ejemplo:

  • Capistrano: Aunque es una herramienta orientada a Ruby on Rails también se puede usar para PHP. Se puede instalar usando la instrucción:
    sudo apt-get install capistrano
  • Chef: Es una poderosa herramienta con más funcionalidades que el sólo desplegar código, Chef está basada en Ruby.

Otros Recursos

Hay muchos más recursos para aprender de esta temática y de otros asuntos afines como es el control de versiones usando Git e implementar un Entorno de Integración Continúa.