Drupal y DDEV

11/03/2021
Drupal y DDEV

Introducción

DDEV es una herramienta de código abierto que utiliza docker para crear rápidamente entornos locales de desarrollo PHP. Tiene diferentes plantillas para diferentes marcos de trabajo como pueden ser PHP genérico, WordPress, Drupal, TYPO3, Backdrop, Magento, Laravel, etc.

Uno de los objetivos de este tipo de herramientas es que los entornos locales sean homogéneos por lo que potencia los flujos de trabajo en los equipos de desarrollo ya que cualquier integrante trabaja con las mismas versiones tecnológicas.

En este post veremos como instalar y desplegar en pocos minutos un entorno DDEV local en ubuntu utilizando como marco de trabajo drupal 9.

Requisitos previos

Un equipo local con:

  • Linux: Ubuntu 16.04+, Debian Jessie + o Fedora 25+
  • Docker versión 18.06 o superior y docker-compose 1.21.0 o superior instalados en el equipo local.
  • Control de versiones git (sólo para la instalación de proyectos existentes).

Instalación y configuraciones

Instalación de DDEV en Linux:

Instalación mediante Linuxbrew:

Para la instalación de ddev se recomienda la instalación utilizando el administrador de paquetes Homebrew en Linux. Una vez instalado este administrador, los comandos a ejecutar son los siguientes:

Para instalar la versión estable más reciente de DDEV:

brew tap drud/ddev && brew install ddev

Para instalar la versión más reciente:

brew tap drud/ddev-ede && brew install ddev

Si en un futuro se desea actualizar la versión de ddev del equipo, simplemente debemos de cerrar ddev y actualizar.

ddev poweroff && brew upgrade ddev

Una vez instalado o actualizado DDEV, verificamos el software con el siguiente comando:

ddev version

Y podremos comprobar la versión instalada o actualizada.

Drupal y DDEV - Versión de DDEV

Instalación mediante líneas de comandos:

Paquete previos para la instalación:

sudo apt install build-essential apt-transport-https ca-certificates software-properties-common curl

Instalación de ddev:

curl -LO https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh && bash install_ddev.sh

Una vez instalado DDEV, verificamos el software con el siguiente comando:

ddev version

Comandos de ddev

Con el comando ddev o ddev -h obtendremos el listado de comandos que nos provee ddev. Todos estos, deben ejecutarse en la raíz del proyecto. A continuación se comentan algunos de ellos:

  • ddev config: Configura un proyecto para ddev. Por ejemplo para una distribución drupal, wordpress, etc.
  • ddev ssh: Permite el acceso dentro del contendor.
  • ddev start: Inicia el contenedor.
  • ddev stop: Para el contenedor.
  • ddev import-db: Importa una base de datos.
  • ddev export-db: Exportar la base de datos.
  • ddev composer: Permite ejecutar composer dentro del contenedor. Por ejemplo ddev require drupal/module
  • ddev xdebug: Habilita xdebug
  • ddev drush: Acceso directo al CLI de drush. Por ejemplo ddev drush cr.
  • ddev logs: Para ver el log de apache.

Contenedor para un proyecto drupal 9

Instalación de un nuevo proyecto:

Creamos el directorio raíz:

mkdir drupal-9

Accedemos al directorio:

cd drupal-9

Creamos la estructura de directorios específica para el proyecto:

ddev config --project-type=drupal9 --docroot=web --create-docroot

Dentro del directorio tendremos creado un árbol de directorios como el que se muestra a continuación.

Drupal y DDEV - Árbol de directorios

El settings.php tendrá un include del fichero settings.ddev.php creado con la instalación de ddev. Este fichero será el que tenga las configuraciones necesarias para las referencias de nuestro drupal, por ejemplo la conexión a base de datos o directorio de configuración.

Iniciamos la plataforma.

ddev start

El comando anterior nos mostrará una salida como la que se pone a continuación:

Drupal y DDEV - DDEV start

Por lo que ya tenemos levantado nuestro contenedor y disponibles las url de acceso web, que son las que se muestran en la imagen anterior. Si accedemos a esas urls nos muestra un error 403, y esto se debe a que el proyecto drupal aún no está instalado. Es necesario instalarlo mediante el administrador de paquetes composer como pone a continuación.

Instalamos drupal mediante composer, el cual descargará el núcleo de drupal con todas sus dependencias.

ddev composer create "drupal/recommended-project"

Una vez ejecutado ya tendremos un proyecto drupal escribiendo las urls anteriormente comentadas en nuestro navegador. Otra forma de acceder a la url es ejecutando el comando “ddev launch” el cual nos abrirá una ventana del navegador con la url generada por ddev.

Instalación de drush para drupal:

ddev composer require "drush/drush"

En este punto podemos instalar drupal a través de interfaz (utilizando el asistente de instalación) o mediante drush.

Instalación de un proyecto drupal 9 existente:

Clonar el repositorio:

git clone git@github.com:example/example-site.git drupal9

Acceder al directorio:

cd drupal9

Creamos la estructura de directorios que necesita ddev:

ddev config --project-type=drupal9

En este punto hay que revisar si el fichero settings.ddev se está incluyendo en el settings.php de la aplicación y ver si está bien referenciado.

Arrancamos el contenedor

ddev start

Importamos la base de datos

ddev import-db --src=drupal9-database-project.sql

Accedemos al navegador:

ddev launch

Conclusiones

  • DDEV nos proporciona un entorno de desarrollo local preconfigurado para drupal con un montaje rápido en apenas unos minutos.
  • Permite tener levantados varios entornos a la vez.
  • No es necesario tener conocimientos de docker.
  • Tenemos disponibles herramientas como Composer, Drush o XDebug para nuestros desarrollos.