
Siguiendo mi publicación anterior sobre cómo configurar DDEV e instalar Drupal. En esta publicación, repaso cómo personalizar tu instalación DDEV. ¿Por qué preguntas? Bueno, supongamos que estás trabajando para un cliente con un servidor PRE/PRO configurado con LAMP o LEMP y usa una versión específica de PHP, además de una versión específica de MariaDB. De hecho, no deberías tener una versión diferente de PHP y MariaDB en tu máquina local. Aquí es donde DDEV te puede facilitar la vida. Puedes configurar fácilmente tu instalación DDEV para que coincida con el entorno del servidor. De esta manera, puedes asegurarse de que tu código funciona en el servidor.
Configurando diferentes versiones de PHP y MariaDB
En este caso, en Pro tenemos PHP8 y MariaDB 16. Para que esta configuración coincida con la de tu máquina local, puedes ejecutar el siguiente comando:
ddev config --php-version=8.0 --mariadb-version=16
ddev restart
Y con este simple comando ya tienes PHP8 y MariaDB 16 instalados y funcionando en tu máquina local.
Activar xDebug
Por defecto, en cada proyecto DDEV que creas, DDEV tiene xDebug desactivado. Con solo ejecutar ddev xdebug enable se te habilitará y ya puedes empezar a depurar. Recuerda que cada vez que reinicies tu instalación DDEV, deberás volver a ejecutar este comando. Si deseas habilitar xDebug permanentemente, puedes hacerlo editando el archivo config.yaml ubicado en la carpeta .ddev

xdebug_enabled: true
xDebug con WSL2 + Docker CE
Como mencione antes, activar xDebug es bastante sencillo en DDEV, siempre y cuando estés usando Docker desktop. Si estás usando Docker CE con WSL2, deberás hacer pasos adicionales para que xDebug funcione.
Opción 1: Desarrollo en remoto
Si usas VSCode o PHPStorm, tienes la opción de poder desarrollar dentro de WSL2 usando una extensión de desarrollo remoto (la cual viene por defecto con los dos software).
Opción 2: PHPStorm En Windows usando la ruta directa UNC
En este ejemplo, abres PHPStorm y añades un proyecto tal y como lo harías con cualquier otro proyecto local.
Tuve que hacer un truco para que funcionara. Después de innumerables horas navegando por Internet, encontré una solución que me funciono, pero antes de repasar los pasos, asegúrate de instalar el plugin DDEV para PHPStorm, ya que te facilitará mucho la vida, se encargará de configurar el servidor y la configuración del depurador por ti.
- Desde tu Shell, ejecuta
cat /etc/resolv.confy copia la dirección IP que está a la derecha denameserver

- Añade las siguientes líneas al archivo
.ddev/php/xdebug-localhost.ini:
xdebug.client_host=THE_IP_ADDRESS_YOU_COPIED
- Reinicia tu proyecto DDEV
PD: Tuve que volver a reconfigurar mi instalación mientras escribía este post y xDebug no funcionaba. Sabía todo estaba bien configurado, y después de 40 minutos me acordé de lo que paso la última vez: El firewall de Windows estaba bloqueando la conexión. Así que si tienes el mismo problema, desactiva el Firewall o añade una regla personalizada para permitir el tráfico entrante/saliente.
Opción 3: PHPStorm dentro de WSL2
Use este método al principio cuando tenía una versión antigua de PHPStorm que no me permitía configurar el intérprete PHP remoto. Ahora con la última versión ya no lo necesito, pero igualmente lo dejaré aquí por si alguien lo necesita:
# Ejectura el siguiente comando desde la shell de WSL2
snap install phpstorm --classic
Snap se ocupa de descargar la versión Linux de PHPStorm, usa WSLg en segundo plano para poder ejecutarlo directamente desde Windows. Con este método tampoco tienes que configurar nada.
Ajustes adicionales de PHP
Si tu proyecto requiere algún que otro ajuste adicional para PHP, puedes hacer lo siguiente:
Abre la carpeta .ddev que se encuentra en la raíz de tu proyecto y crea una carpeta llamada PHP. Dentro de esta carpeta crea un archivo llamado php.ini. Añade cualquier configuración que necesites, reinicia tu proyecto y listo.
Y esto es todo por hoy Espero que hayas encontrado esta publicación útil. Si tienes alguna pregunta, no dudes en contactarme en LinkedIn.