Yii2 y Vagrant: aplicación avanzada

Ya que definimos que no se puede probar muy bien que digamos en Windows, ¿qué pasa si sufres de la condición clínica denominada developer en Windows?

Afortunadamente, ya existe una cura (de hecho, varias): Vagrant.

Vagrant es una herramienta que nos permite configurar entornos de desarrollo rápidamente.

Hay muchas partes que componen la siguiente configuración. Basta decir que necesitarás instalar Vagrant y VirtualBox.

Dado que utilizamos PHP y Yii2, hay una herramienta sencilla en línea para configurar entornos de este tipo: PuPHPet.

El asistente se divide en 9 pestañas:

  1. Plataforma objetivo.
  2. Sistema.
  3. Servidor web.
  4. Lenguajes de programación.
  5. Base de datos.
  6. Herramientas de correo.
  7. Colas de trabajo.
  8. Servidores de búsqueda.
  9. Crear archivo.

Comenzamos la configuración.

Plataforma objetivo

La figura 1 muestra los parámetros que utilizamos:

Figura 1: Configurando entorno con PuPHPet.

Figura 1: Configurando entorno con PuPHPet.

Configuramos nuestro proveedor como VirtualBox, dado que es gratuito, con CentOS 7 como distro.

En la configuración de la máquina hay que colocar los recursos que nuestra máquina puede soportar en una máquina virtual (en términos de CPUs y memoria).

Lo realmente importante en esta sección es la IP y el hostname.

La IP será utilizada posteriormente en el archivo de hosts de Windows para mapear los dominios.

Por otro lado, el hostname será utilizado para la conexión con la base de datos.

Así que, es importante conservar estos dos valores en la memoria.

Aquí mismo se configuran los puertos que deseamos enrutar desde nuestro host a la máquina virtual (VM).

Podemos agregar el puerto 3306 al puerto 22 de la máquina virtual, pues es éste el que se utiliza generalmente para SQL.

En la última sección, de carpetas compartidas, compartimos la carpeta desde donde se levantará el servidor (indicada por ./) en /var/www de la VM.

Proseguimos a la siguiente sección.

Sistema

Aquí se instalan paquetes y se configuran parámetros de nuestra VM.

A pesar de que existen varias cosas por configurar aquí, como el firewall, grupos, y cron jobs, lo más relevante para empezar es saber que puedes instalar ciertos paquetes en la pestaña de Packages.

Para nuestra configuración, conservamos los valroes predeterminados:

Figura 2: Configuración de paquetes a instalar.

Figura 2: Configuración de paquetes a instalar.

Lo siguiente es ir a la sección de Locale/Timezone e introducir mi zona horaria y qué lenguajes deseo soportar en mi sistema:

Figura 3: Configuración de idiomas y zona horaria.

Figura 3: Configuración de idiomas y zona horaria.

Servidor

PuPHPet nos permite instalar Apache o Nginx.

En Ktaris trabajamos con Apache, así que eligiremos esa opción.

Automáticamente se seleccionan proxy_fcgi y rewrite, mismos que necesitaremos para correr PHP y establecer URLs bonitas.

Dado que utilizamos la aplicación avanzada de Yii2, habrá que configurar dos directorios.

Un directorio debe apuntar a /var/www/frontend/web, atado a un subdominio, como frontend.cursoyii2.dev.

Y debemos añadir manualmente otro directorio que apunte a /var/www/backend/web, atado a backend.cursoyii2.dev.

La configuración para el frontend se muestra en la figura 4:

Figura 4: Configuración de Apache.

Figura 4: Configuración de Apache.

Lenguajes de programación

Al seleccionar PHP podemos dejar todo de manera predeterminada, salvo que recuerdes alguna bandera que necesites (figura 5).

Figura 5: Configurando PHP.

Figura 5: Configurando PHP.

También podemos instalar Composer en este paso, activando la casilla correspondiente (figura 6).

Figura 6: Instalando Composer.

Figura 6: Instalando Composer.

Por último, incluímos XDebug en la configuración. Esta parte nos permite editar las banderas de XDebug y sus valores (figura 7).

Figura 7: Configurando Xdebug.

Figura 7: Configurando Xdebug.

Bases de datos

Seleccionamos MariaDB, con todos sus valores predeterminados, pues ya crea una base de datos y un usuario con sus respectivos privilegios (figura 8).

Figura 8: Configuración de MariaDB.

Figura 8: Configuración de MariaDB.

Finalizar archivo

Salvo que tengas alguna necesidad para configurar las otras opciones, como el correo o servidores de búsqueda, podemos pasar directamente a crear el archivo para generar nuestro entorno de desarrollo.

Figura 9: Descargar archivo.

Figura 9: Descargar archivo.

Una vez que tienes el archivo puphpet.zip, lo descomprimes y navegas hacia la carpeta.

Dentro de la carpeta encontrarás varios archivos, aunque solo debes asegurarte que estás en la carpeta junto con el archivo Vagrantfile.

Desde allí, abres una terminal y ejecutas lo siguiente:

vagrant up

La terminal empezará a mandar mucho texto, instalando y configurando todo lo que acabamos de hacer en PuPHPet.

Finalmente, terminará la instalación, como se muestra en la siguiente figura:

Figura 10: Fin de instalación de Vagrant.

Figura 10: Fin de instalación de Vagrant.

Como dice en la salida, si no hubo un mar de rojo en alguna parte de todo lo que se escribió en pantalla, todo ha salido bien.

Revisando máquinas activas

Ahora que ya tienes una máquina virtual activa, ¿cómo sabes cuántas tienes?

Si deseas saber cuántas máquinas tienes (y qué tantos recursos tienes en uso), simplemente ejecuta el siguiente comando:

vagrant global-status

En la figura 11 se muestra la lista de máquinas activas y su estado.

Figura 11: Revisando máquinas virtuales activas.

Figura 11: Revisando máquinas virtuales activas.

Si quisiera desactivar la máquina llamada cursoyii2, utilizaría la id y el comando halt:

#vagrant halt id
vagrant halt 7c9e9f2

Y si quisiera destruir la máquina virtual, se utiliza destroy:

#vagrant destroy id
vagrant destroy 7c9e9f2

Configurando hosts en Windows

Una vez que tenemos la máquina virtual, sólo nos falta configurar Windows para ir hacia los dominios que acabamos de configurar con PuPHPet.

Recordemos los datos de las secciones de PuPHPet: la IP de la primera sección y los dominios configurados con Apache.

Vamos a C:\Windows\System32\drivers\etc\hosts y agregamos los dos dominios:

192.168.56.101   backend.cursoyii2.dev
192.168.56.101   frontend.cursoyii2.dev

Ahora, si has hecho todo correctamente, ya debes ver ambos sitios en las URLs antes disponbles.

Si colocas tus archivos de Yii2 en la carpeta, podrás ver tu sitio en Yii2:

Figura 12: Yii2 en URL de Vagrant.

Figura 12: Yii2 en URL de Vagrant.

Fin

Recapitulemos.

Puedes crear o configurar un entorno de Vagrant con PHP con PuPHPet.

Y los comandos básicos que necesitas conocer de Vagrant son:

vagrant up            # crear la máquina virtual con la configuración.
vagrant global-status # muestra todas las máquinas creadas.
vagrant halt id       # apagar máquina virtual
vagrant destroy id    # eliminar máquina virtual


Deja un comentario