Preparar un entorno de desarrollo web PHP con DDEV

A día de hoy sigue siendo habitual encontrar desarrolladores que trabajen con entornos como XAMPP o WAMPP y, si bien es cierto que estas distribuciones son fáciles de utilizar para los que son principiantes, son herramientas bastante farragosas cuando se tienen varias aplicaciones con diferentes necesidades.

Por qué usar DDEV

DDEV es una herramienta que nos permite tener, en cuestión de segundos, un entorno de desarrollo PHP. Tan solo modificando su configuración podremos cambiar la versión de PHP, el servidor web (Apache o Nginx) o el gestor de base de datos (MariaDB o MySQL). Tendremos también un entorno seguro en HTTPS gracias a mkcert, accesso SSH, además de acceso a la base de datos a través de phpMyAdmin. Y, probablemente, me deje otras ventajas interesantes por enumerar.

Esto es posible gracias a que DDEV se sirve de Docker para montar el entorno a través de tres contenedores diferentes: uno para el servidor web, otro para el servidor de base de datos y otro más para administrar la base de datos del proyecto.

Tipologías de proyectos

DDEV provee de instalaciones rápidas para proyectos WordPress, Drupal, Magento, Laravel, TYPO3 o Backdrop CMS. También podemos escoger la instalación rápida de PHP si conocemos las necesidades particulares de nuestro proyecto.

Requisitos

Instalación

En Windows:

choco install ddev

En macOS o Linux:

brew tap drud/ddev && brew install ddev

Caso práctico

Imaginemos que tenemos en nuestra máquina un proyecto PHP que deseamos montar en DDEV. Veamos cómo hacerlo:

1- Nos situamos en la carpeta del proyecto

cd mi-proyecto

cd mi-proyecto

2- Configuramos ddev

Nos preguntará una serie de variables como el nombre del proyecto, el directorio public y el tipo de proyecto (para este ejemplo, seleccionamos php).

ddev config

ddev config

3- Inicializamos DDEV

ddev start

ddev start

Veremos que el comando ya nos devuelve la url donde podremos consultar nuestro proyecto: https://mi-proyecto.ddev.site

4- Configuramos la base de datos

Con este comando podremos ver todos los detalles del entorno creado.

ddev describe

ddev describe

Deberemos configurar la conexión con la base de datos con los siguientes parámetros:

host='db'
user='db'
password='db'
database='db'
port= 3306

Para realizar la importación de la base de datos al proyecto basta con ejecutar este comando (se aceptan los siguientes formatos .sql, sql.gz, mysql, mysql.gz, tar, tar.gz, .zip):

dev import-db --src=mi-proyecto.sql

ddev import-db

En mi caso, el archivo estaba ubicado en la raíz del proyecto. Si tiene otra ruta, habrá que especificarla debidamente.

5- ¡Listo!

Ya podemos empezar a trabajar en nuestro proyecto. En DDEV ya vienen instaladas herramientas como Composer, Git, Node.js y npm, por lo que no te tienes que preocupar de instalarlas en tu máquina.

6- Habilitar el HTTPS

ddev stop --all
mkcert -install

7- Modificaciones adicionales

Si necesitas modificar algunas de las características de tu entorno, basta con editar el archivo config.yaml

Archivo config.yaml original

name: mi-proyecto
type: php
docroot: public
php_version: "7.3"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
provider: default
use_dns_when_possible: true

Imaginemos que queremos cambiar el servidor web por Apache y poner la versión 7.4 de PHP:

name: mi-proyecto
type: php
docroot: public
php_version: "7.4"
webserver_type: apache-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
provider: default
use_dns_when_possible: true

Reiniciamos…

ddev stop
ddev start

¡Ya lo tendríamos! 😉

7- Algunos comandos útiles

ddev mysql
ddev logs
ddev ssh

Documentación

Documentación de DDEV-Local

Comentarios

comments powered by Disqus