Devilbox es un stack de PHP que utiliza contenedores de Docker altamente personalizables, lo cual nos permite cambiar con facilidad las versiones de nuestro entorno LAMP. Después de leer este tutorial vamos a ser capaces de crear un entorno de desarrollo con PHP, un servidor nginx y una base de datos MariaDB en el que poder instalar el Framework Laravel. Además podremos gestionar un virtual host fácilmente.
En primer lugar debemos tener instalado Docker en nuestro sistema, en mi caso corre sobre Ubuntu, pero también puede instalarse en Mac y Windows.
Instalar Devilbox
En primer lugar abrimos un terminal y clonamos el repositorio:
git clone https://github.com/cytopia/devilbox
Entramos en la carpeta devilbox que se ha creado:
cd devilbox
Copiamos el fichero env-example dándole el nombre .env para tener nuestra propia configuración. En mi caso voy a dejar los datos que vienen por defecto, pero pueden modificarse si es necesario.
cp env-example .env
Seguidamente vamos a utilizar docker-compose para arrancar el Bind, el cual nos permite usar distintos nombres de dominios para cada proyecto. El httpd, que es el servidor, PHP y Maria DB. Usamos -d para seguir usando la misma terminal:
docker-compose up -d bind httpd php mysql
Con esto nos bajamos las imágenes y arrancamos sus contenedores. En este punto si introducimos la dirección de nuestro localhost en un navegador, nos aparece el panel de control de Devilbox con todos los datos de nuestro entorno de desarrollo.
Crear la Base de Datos
Vamos a arrancar una base de datos MariaDB desde devilbox, para ello desplegamos el submenú tools del menú principal desde el panel de control y elegimos la opción phpMyAdmin desde donde creamos la nueva base de datos dándole un nombre, por ejemplo ‘laravel-db’. En mi caso la base de datos la he creado con desde el usuario root y sin contraseña, pero esto no debería hacerse así por motivos de seguridad.
Instalar Laravel
Usaremos la herramienta ‘laravel’ para instalar Laravel desde dentro del contenedor PHP de Devilbox.
Tras completar los siguientes pasos, tendremos un entorno de desarrollo listo para ser servido vía http.
Tendremos que tener en cuenta los siguientes puntos:
- Dentro del contenedor PHP de Devilbox, los proyectos se encuentran en /shared/httpd .
- En nuestro sistema operativo, los proyectos se encuentran por defecto en ./data/www/ dentro del directorio Devilbox.
Pasos a seguir
1.Entrar en el contenedor PHP
Todo el trabajo se hará dentro del contenedor PHP el cual nos proporcionará todas la herramientas de la línea de comandos que requiramos.
Entra en el directorio Devilbox de tu sistema operativo y ejecuta el siguiente comando shell.sh (shell.bat en windows) para entrar en el contenedor PHP que hay corriendo.
host> ./shell.sh
2.Crea un nuevo directorio vhost
El directorio vhost define el nombre mediante el cual podrás acceder a tu proyecto. (<vhost dir>.TDL_SUFFIX será la URL final).
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-laravel
3.Instalar Laravel
Entra en el recién creado directorio vhost e instala Laravel con ‘laravel’ cli.
devilbox@php-7.0.20 in /shared/httpd $ cd my-laravel
devilbox@php-7.0.20 in /shared/httpd/my-laravel $ laravel new laravel-project
4.Enlace simbólico para la ruta web
Es importante crear un enlace simbólico de la actual ruta web a htdocs para que el servidor web encuentre el punto de entrada del framework ( normalmente index.php).
devilbox@php-7.0.20 in /shared/httpd/my-laravel
$ ln -s laravel-project/public/ htdocs
La estructura de directorios debe aparecer como sigue:
devilbox@php-7.0.20 in /shared/httpd/my-laravel $ tree -L 1
.
├── laravel-project
└── htdocs -> laravel-project/public
2 directories, 0 files
5.Registro DNS
Para ello necesitamos añadir la siguiente línea en el fichero /etc/hots de nuestro sistema operativo ( C:\Windows\System32\drivers\etc en Windows):
En /etc/hosts $ sudo nano hosts
127.0.0.1 my-laravel.loc
Con esto nos aseguraremos de que nuestro navegador direccionará cualquier llamada desde http://my-laravel.loc
a Devilbox, la cual escucha desde 127.0.0.1 .
6.Abre tu navegador
Abre tu navegador con http://my-laravel.loc .
Deja una respuesta