Configuración de un Multisite de Drupal 9 en Local con DDEV: Alojado en Acquia con Acquia Pipelines
En mi trabajo actual, el equipo que lidero da soporte a tres sitios web de una gran organización privada. Los tres sitios web están alojados en Acquia. Los sitios web forman parte de una configuración multisite y el código fuente se gestiona utilizando el servicio Acquia Pipelines.
En resumen, Acquia Pipelines es un servicio de integración y despliegue continuos proporcionado por Acquia, una plataforma basada en la nube que ofrece alojamiento, soporte y gestión de nivel empresarial para sitios web Drupal.
¿Qué es DDEV?
DDEV es una herramienta de línea de comandos que ayuda a los desarrolladores a configurar entornos de desarrollo locales de forma rápida y sencilla. Está diseñado para simplificar el proceso de configuración de un servidor web local, la gestión de dependencias y la configuración de entornos de desarrollo. Si es la primera vez que intentas trabajar con DDEV, asegúrate de consultar esta publicación para empezar con DDEV.
¿Qué es un multisite de Drupal?
Drupal multisite es una característica que permite gestionar múltiples sitios web utilizando una única base de código y base de datos de Drupal. En una configuración multisite de Drupal, varios sitios web comparten una única instalación de Drupal, lo que puede reducir el tiempo y los costes de mantenimiento.
Cada sitio web en una configuración multisite de Drupal tiene su propio dominio o subdominio único y puede tener su propio tema, módulos, contenido y configuraciones. Sin embargo, comparten la misma base de código principal y base de datos.
Drupal multisite es útil cuando necesitas gestionar varios sitios web que comparten una base de código, tema o funcionalidad similar, como una red de sitios web relacionados, o varias versiones lingüísticas de un sitio web. Puede simplificar el mantenimiento del sitio web, reducir los costes y mejorar la coherencia entre los sitios web.
La receta para configurar el multisite local
- Necesitas configurar el proyecto usando DDEV. Consulta esta publicación para empezar.
- La ubicación del docroot desde donde se sirve el sitio debe ser web/docroot. Se te hará una pregunta sobre la ubicación del docroot al ejecutar el comando
ddev config
- La ubicación del docroot desde donde se sirve el sitio debe ser web/docroot. Se te hará una pregunta sobre la ubicación del docroot al ejecutar el comando
- En la carpeta .ddev, crea un archivo llamado config.multisite.yaml
- El archivo config.multisite.yaml debe tener el siguiente contenido:
additional_hostnames:
- site1
- site2
- site3
- Actualiza el archivo sites.php para añadir los tres dominios locales y sus carpetas correspondientes.
El archivo sites.php es un archivo de configuración que te permite mapear nombres de dominio o URLs a directorios específicos del sitio de Drupal.
$sites['site1.ddev.site'] = 'site1_directory';
$sites['site2.ddev.site'] = 'site2_directory';
$sites['site3.ddev.site'] = 'site3_directory';
- Crea tres bases de datos usando PHPMyAdmin. Si el nombre del proyecto DDEV fuera mysite, puedes acceder a phpmyadmin en https://mysite.ddev.site:8037/
- Exporta copias de seguridad de la base de datos desde acquia e impórtalas en las bases de datos correspondientes que creaste como parte del paso 4.
- Si las bases de datos son grandes, puedes usar un comando ddev para importarlas:
ddev import-db --target-db=DATABASE_NAME --src=.tarballs/DB-BACKUP_FILE.sql.gz
- Si las bases de datos son grandes, puedes usar un comando ddev para importarlas:
- En el directorio de cada archivo, necesitas añadir este archivo ddev aquí.
- El archivo settings.php de cada sitio necesita ser actualizado para incluir el código de este archivo.
- Ejecuta
ddev ssh
y despuéscomposer install
- el comando
ddev ssh
te permite acceder a la interfaz de línea de comandos (CLI) de un contenedor web ddev en ejecución, para que puedas ejecutar composer, drush y otros comandos desde dentro del contenedor web.
- el comando