Ahora que ya hemos aplicado todos los pasos descritos en la primera parte de este artículo Cómo instalar Drupal 9 usando Docker en Windows 10 Home, y que además tenemos instalados y configurados los principales requisitos para que podamos poner en marcha nuestro Drupal utilizando Docker, tal y como está descrito en la segunda parte de este artículo, ha llegado el momento de pasar a la siguiente fase; así que sin más tiempo que perder comenzaremos con nuestra instalación final.
Cómo ya tenemos todo lo necesario para trabajar con Docker en nuestro ordenador, eres libre de elegir entre todos los métodos disponibles para aplicarlos en tus proyectos, pero yo he optado por la manera más sencilla y fácil de entender, ya que mi verdadero propósito es que puedas concentrarte en Drupal, en lugar de tratar de explicarte a fondo cómo funcionan los Contenedores de Docker, el Dockerfile o el Docker Compose, aunque si te apetece explorar puedes visitar la página oficial de Drupal donde podrás ver varias de las opciones disponibles y aplicar la que creas más conveniente.
Pasos para instalar Drupal 9 en tu servidor local usando Docker y DDEV
Paso 1: Instalar DDEV en nuestro Linux
" 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".
DDEV incluye plantillas para WordPress, Laravel, Magento, TYPO3, Drupal y mucho más.
En mi caso voy a utilizar la Terminal de Windows, con la pestaña de mi Ubuntu abierta para realizar todo el proceso, si todavía no la has instalado, te recomiendo hacerlo, porque te facilitará mucho el desarrollo de cualquier proyecto, ya que ahora podrás ejecutar comandos tanto de Windows como de Linux, dependiendo de tus necesidades.
En una distribución de Linux, podremos instalar DDEV usando Homebrew para Linux o usando la secuencia de comandos de instalación oficial. Como en este ejemplo hemos instalado Ubuntu, lo primero que tendríamos que hacer es actualizar la lista de paquetes en el administrador de paquetes apt (puede usar apt en Debian, de lo contrario utilice el administrador de paquetes equivalente asociado con su distribución Linux):
sudo apt update
A continuación instalaremos algunos paquetes previos desde el repositorio oficial de Ubuntu:
sudo apt install build-essential apt-transport-https ca-certificates software-properties-common curl
Estos paquetes le permitirán descargar la secuencia de comandos de instalación de DDEV desde su repositorio oficial GitHub.
Y entonces podremos descargar la secuencia de comandos para la instalación de DDEV:
curl -O https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh
Antes de ejecutar la secuencia de comandos del archivo "install_ddev.sh", ábrelo con el notepad++ o el editor de texto que prefieras e inspecciona su contenido.
Después de haber revisado el contenido de la secuencia de comandos y estés satisfecho, guarda y cierra el archivo. Ahora está listo para ejecutar la secuencia de comandos de instalación.
Utiliza el comando chmod para hacer que la secuencia de comandos sea ejecutable:
chmod +x install_ddev.sh
Y Ahora sí podrás ejecutar la secuencia de comandos:
./install_ddev.sh
Es muy probable que durante el proceso de instalación te pida que confirmes algunos ajustes o que introduzcas tu contraseña sudo. Una vez completada la instalación, tendrás DDEV disponible en su sistema operativo Linux.
Puedes saber la versión que haz instalado ddev version ejecutando lo siguiente:
ddev version
Entonces verás en tu consola un resultado parecido a esto:
DDEV incluye una potente CLI o interfaz de línea de comandos. Si ejecutas ddev sin nada más podrás aprender sobre estos comandos comunes:
Verá lo siguiente:
Para obtener más información sobre cómo usar la CLI de DDEV, visita la documentación oficial de DDEV.
Con DDEV instalado en tu equipo local, ahora estás listo para instalar Drupal 9 y comenzar a desarrollar un sitio web.
Paso 2: Implementando un nuevo sitio Drupal 9 usando DDEV
Con DDEV en ejecución, ahora lo usaremos para crear un sistema de archivos de Drupal específicos para nuestro proyecto, instalaremos Drupal 9 e iniciaremos un proyecto de sitio web estándar.
Primero, crearemos un directorio raíz para nuestro proyecto y luego entraremos en él. A continuación ejecutaremos todos los comandos siguientes desde esta ubicación. Para este ejemplo voy a nombrar mi directorio como drupaladicto9, pero puedes el nombre que quieras a tu directorio. Evita el uso de guiones medios para la nomenclatura, ya que podría generar errores de ejecución. Evita usar nombres como "mi-proyecto" o "sitio-drupal-1".
Crea el directorio raíz para tu proyecto y a continuación entra en él:
mkdir drupaladicto9 cd drupaladicto9
DDEV sobresale a la hora de crear árboles de directorio que coinciden con plataformas CMS específicas. Si ejecutas el comando ddev config podrás crear una estructura de directorio específica para Drupal 9:
ddev config --project-type=drupal9 --docroot=web --create-docroot
Verás un resultado similar a este:
Como al ejecutar el comando ddev config pasamos como parámetro --project-type=drupal9, DDEV creó varios subdirectorios y archivos que representan la organización predeterminada para un sitio web Drupal. El árbol de directorio de su proyecto ahora tendrá este aspecto:
.ddev/ será la carpeta principal para la configuración ddev. web/ será el docroot o directorio raíz para nuestro proyecto drupal; y contendrá varios archivos de configuración específicos. Por lo tanto, en este momento tendremos todos los archivos que servirán de base para arrancar nuestro servidor local funcionando con Docker.
El siguiente paso será arrancar el ddev, que creará los contenedores necesarios y las configuraciones de red. DDEV vincula los puertos 80 y 443, por lo que, si estamos ejecutando un servidor web como Apache, o cualquier otra aplicación que utilice esos puertos, tendremos que detenernos antes de continuar.
Utilice el comando ddev start para iniciar su plataforma:
ddev start
Esto creará todos los contenedores basados en Docker para tu proyecto, lo que incluye un contenedor web, un contenedor de base de datos y phpmyadmin. Cuando la inicialización esté completa, verás un resultado similar a este (el número de su puerto podría ser diferente):
ddev start ha creado correctamente sus contenedores y nos ha dado un resultado con dos URL. Aunque este resultado dice que “puede llegar a su proyecto en http://drupaladicto9.ddev.site y http://127.0.0.1:32773, si visitamos estas URL ahora provocará un error. Debido a los cambios en la estructura de archivos de Drupal a partir de la versión 8, primero tendremos que terminar de instalar Drupal usando Composer, el administrador de paquetes para proyectos PHP antes de cargar nada en nuestro navegador web.
Una de las funciones más útiles de DDEV es que podremos pasar comandos Composer a través de la CLI de DDEV y en tu entorno en contenedores. Esto significa que podremos separar la configuración específica de nuestro equipo mientras nuestro entorno sea el de desarrollo. Ya no tendremos que administrar los diversos problemas de ruta de archivo, dependencias y versión que generalmente acompañan al desarrollo PHP local. Además, podremos cambiar de contexto rápidamente entre múltiples proyectos usando diferentes marcos y pilas tecnologías con un esfuerzo mínimo.
Si ahora mismo abrimos el explorador de archivos y buscamos dentro de la carpeta "drupaladicto9/web", veremos que sólo hay una carpeta sites dentro, por lo que nos faltarán todo el resto de carpetas y archivos con lo que funciona Drupal para que podamos arrancarlo:
Es por esta razón que ejecutaremos el comando ddev composer para descargar drupal/recommended-project. Esto descargará el núcleo de Drupal, sus bibliotecas y otros recursos relacionados y, luego, creará un proyecto predeterminado:
ddev composer create "drupal/recommended-project"
Veremos un mensaje en la consola avisándonos que a continuación se iniciará el proceso de descargas de todos los archivos necesarios para Drupal y tendremos que confirmar con un "Y" o "yes" para que empiecen a descargarse todos los archivos, el proceso tartar sólo un momento, dependiendo de la velocidad de conexión a internet que tienes.
Una vez terminado el proceso de descarga, si volvemos a la carpeta "drupaladicto9/web" con el explorador de archivos, podremos comprobar que esta vez sí tendremos todos los archivos necesarios para continuar con la instalación:
Ahora descargaremos un componente final llamado Drush, o Drupal Shell. Esta vez solo usaremos un comando drush, y contaremos con una alternativa, pero drush es una CLI potente para el desarrollo de Drupal que puede mejorar su eficiencia y ahorrarnos mucho tiempo durante el proceso de desarrollo.
Ejecuta el comando ddev-composer para instalar drush:
ddev composer require "drush/drush"
Por fin, ya se ha creado un proyecto Drupal 9 predeterminado y hemos instalado drush. Así que si abrimos el navegador con la url que vimos cuando ejecutamos ddev start podremos ver el instalador de drupal.
Paso 3: Configurar su proyecto Drupal 9
Ahora que instaló Drupal 9 puede visitar su nuevo proyecto en su navegador. Para hacer esto, puede volver a ejecutar ddev start y copiar una de las dos URL que produce, o puede usar el siguiente comando, que abrirá su sitio automáticamente en una nueva ventana del navegador.
ddev launch
Encontrará el asistente estándar de instalación de Drupal.
Aquí tienes dos opciones. Puedes usar esta UI y seguir el asistente durante la instalación, o puedes volver a la terminal y pasar un comando drush a través de ddev. Si decides utilizar la consola se automatizará el proceso de instalación y establecerá admin como tu nombre de usuario y contraseña.
Opción 1: Con el asistente de instalación de Drupal
Vuelve al asistente en tu navegador. Bajo Choose language (Seleccionar idioma), seleccione un idioma en el menú desplegable y haz clic en Save and continue (Guardar y continuar). Luego selecciona un perfil de instalación. Puede elegir entre Standard (Estándar), Minimal (Mínima) y Demo. Selecciona la opción que quieras y haz clic en Save and continue (Guardar y continuar). Drupal verificará automáticamente sus requisitos, configurará una base de datos e instalará tu sitio. Tu último paso es personalizar algunas configuraciones. Añade un nombre de sitio y una dirección de correo electrónico que termine en tu dominio. Después, elije un nombre de usuario y una contraseña. Elije una contraseña segura y mantenga sus credenciales en algún lugar seguro. Por último, añade una dirección de correo electrónico privada que compruebe regularmente, complete los ajustes regionales y pulse Save and continue (Guardar y continuar).
Al finalizar la instalación verás un mensaje de bienvenida.
Opción 2: Con la línea de comandos
Desde el directorio raíz de tu proyecto, ejecuta este comando ddev exec para instalar un sitio de Drupal predeterminado usando drush:
ddev exec drush site:install --account-name=admin --account-pass=admin
Esto creará su sitio de la misma manera que el asistente lo hará pero con algunas configuraciones de texto estándar. Su nombre de usuario y contraseña serán admin.
Ahora abra el sitio para verlo en su navegador:
ddev launch
Ahora está listo para comenzar a crear su sitio web, pero se considera una buena práctica comprobar que sus permisos son correctos para el directorio /sites/web/default. Aunque está trabajando localmente, esto no es un problema significativo, pero si transfiere estos permisos a un servidor de producción, supondrán un riesgo de seguridad.
Paso 4: Comprobar sus permisos
Durante la instalación del asistente, o cuando se cargue por primera vez su página de bienvenida, es posible que vea una advertencia sobre los ajustes de los permisos en su directorio /sites/web/default y un archivo dentro de ese directorio: settings.php.
Tras ejecutarse la secuencia de comandos de instalación, Drupal intentará configurar los permisos del directorio web/sites/default a read (lectura) y execute (ejecutar) para todos los grupos: este es un ajuste de permisos 555. También intentará configurar permisos para default/settings.php a solo lectura o 444. Si aparece esta advertencia, ejecute estos dos comandos chmod desde el directorio raíz de su proyecto. No hacerlo plantea un riesgo de seguridad:
chmod 555 web/sites/default chmod 444 web/sites/default/settings.php
Para verificar que tienes los permisos correctos, ejecuta este comando ls con los conmutadores a, l, h y d:
ls -alhd web/sites/default web/sites/default/settings.php
Ahora estás listo para desarrollar un sitio web Drupal 9 en tu equipo local.
Extras:
Como estamos trabajando con Docker y DDEV podremos ejecutar los siguientes comandos para manipular los contenedores desde cualquier lugar, ya que ddev está disponible globalmente:
ddev stop Si lo ejecutamos desde nuestro directorio raiz, detendrá los contenedores del proyecto sin perder información.
ddev stop drupaladicto9 Aunque no estemos en la carpeta raíz del proyecto, detendrá los contenedores relacionados con el proyecto, porque estamos especificando el nombre del proyecto relacionado
ddev list Mostrará todos los proyectos que tenemos en marcha
ddev import-db --target-db=midb --src=midb.sql Importa una base de datos desde un archivo .sql
ddev composer require pathauto Para descargar y añadir módulos usando Composer (En este caso Pathauto)
ddev exec drush cr Para limpiar caché de drupal usando drush
ddev exec drush en pathauto -y Para activar el módulo pathauto y sus dependencias usando drush
DDEV incluye muchos otros comandos útiles.
Puede reiniciar DDEV y continuar desarrollando localmente en cualquier momento.