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
- Docker
- Chocolatey si usas Windows / Homebrew si usas macOS o Linux
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
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
3- Inicializamos DDEV
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
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
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
Comentarios
comments powered by Disqus