Skip to main content

Generar con ddev un entorno local para trabajar con proyectos Drupal

Wed, 08/09/2021 - 15:50
15
mins.
cover_generar_entornos_ddev
Categoria
Tutorial

DDEV es una herramienta de código abierto que simplifica enormemente la puesta en funcionamiento de entornos de desarrollo PHP locales en cuestión de minutos. Es potente y flexible como resultado de sus configuraciones de entorno por proyecto, que se pueden ampliar, controlar la versión y compartir. En resumen, DDEV tiene como objetivo permitir que los equipos de desarrollo utilicen Docker en su flujo de trabajo sin las complejidades de la configuración a medida.

Pre requisitos

Instalar Docker y docker-compose:

Para descargar e instalar docker seguir las instrucciones del sitio oficial de docker

https://docs.docker.com/engine/install/debian/

Luego desde la consola debemos ejecutar los siguiente comandos (https://docs.docker.com/engine/install/linux-postinstall/):

sudo groupadd docker
sudo usermod -aG docker $(whoami)
newgrp docker(if is a VM restart the vm)
# Verificar la instalación corriendo 
docker run hello-world

Una vez que tenemos docker y docker-compose instalado pasamos a instalar ddev.

Yo voy a instalar y utilizar brew (gestor de paquetes) para instalar ddev pero podemos instalarlo manualmente.

Instalar Homebrew.sh (es un gestor de paquetes) desde acá vamos a luego instalar ddev:

Correr el siguiente comando para descargar e instalar brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Agregar Homebrew al PATH y al bash shell profile (reemplazar USER por tu nombre de usuario):

Nota: En mi caso que uso oh my zsh en vez de .profile vá .zshrc, si se usa bash está bien que sea .profile
 

echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >> /home/USER/.profile 

eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)

Probar brew con el siguiente comando:

 brew install hello

Instalar ddev con brew

brew tap drud/ddev && brew install ddev

 

Generar un entorno e instalar Drupal 9:

Creamos un directorio para el proyecto y nos movemos dentro

mkdir my-drupal9-site
cd my-drupal9-site

Correr el siguiente comando para configurar nuestro proyecto Drupal

ddev config --project-type=drupal9 --docroot=web --create-docroot
  • Con ddev config se creará el directorio .ddev con la configuración basica.
  • Esto además generara los archivos settings.php y settings.ddev.php dentro de la ruta web/sites/default.
  • Por ultimo se va a crear el directorio para Drush (a drush lo instalaremos luego, esto crea solo el directorio).
  • Esto es solo configuración. Aún no tenemos el proyecto drupal ubicado, solo seteamos su entorno de trabajo.

Luego que armamos la receta para nuestro proyecto (config) ejecutamos ddev start para levantar los contendores

ddev start
  • Una vez que finaliza este proceso vas a ver un link para acceder al sitio desde el navegador, algo como http://my-drupal9-site.ddev.site, pero como dijimos anteriormente, no tenemos aún instalado drupal asi que esto no funcionará, por el momento lo ignoramos.

Ya con el servidor corriendo obtenemos la ultima version de drupal estable a través de composer. Responder Yes cuando pregunta si desea sobrescribir todo en el directorio existente.

ddev composer create "drupal/recommended-project:^9"

Instalamos Drush

ddev composer require drush/drush
  • Al instalar drush como parte del proyecto que se ejecutará dentro del contendor web permitirá que ejecutemos los comandos drush de la manera "ddev drush <comando>" independientemente a que el host tenga Drush instalado.

Instalamos drupal usando drush

ddev drush site:install
  • Esto va a crear la base de datos del sitio, instalará los modulos y dependencias necesarias y al finalizar tendremos un sitio Drupal listo para utilizar.
  • Al final del proceso vamos a ver los datos de acceso del usuario administrador. Importante tenerlos a mano para poder logearse luego.

Finalmente lanzamos el sitio en el navegador predeterminado!

ddev launch

Generar un entorna e instalar Drupal 8:

mkdir my-drupal8-site
cd my-drupal8-site
ddev config --project-type=drupal8 --docroot=web --create-docroot
ddev start
ddev composer create "drupal/recommended-project:^8"
ddev composer require drush/drush
ddev drush site:install -y
ddev launch

Generar un entorna e instalar Drupal 7:

Como drupal 7 no utiliza composer tenemos dos posibles opciones para obtener el core de drupal:

A- Descargarlo directamente desde drupal.org

wget https://ftp.drupal.org/files/projects/drupal-7.78.zip   
unzip drupal-7.78.zip
mkdir my-drupal7-site
mv drupal-7.78 my-drupal7-site    
  • Tener en cuenta colocar la versión que se requiera. En este caso yo obtuve la vesion 7.78

B- Clonarlo del repo oficial git de drupal

git clone --branch 7.x https://git.drupalcode.org/project/drupal.git
mkdir my-drupal7-site
mv drupal my-drupal7-site

Una vez que obtenemos el proyecto continuar con los siguientes pasos

cd my-drupal7-site
ddev config
ddev start
ddev drush site-install
ddev launch

Conclusión

Mas allá de la versión de Drupal a utilizar, siguiendo los pasos vamos a obtener/crear entornos de una manera simple y rápida (muy rápida).

Además algo que es muy importante es que cada uno de los entornos será independiente del resto, es decir que podemos usar para un proyecto PHP 5 y para otro PHP 7 o cambiar el servidor web de Apache a NGINX, o la versión de MariaDB o de MySql utilizada y todo esto sin alterar el resto de los proyectos.