Con el objetivo de optimizar el uso de recursos en nuestros desarrollos, una posible solución es utilizar una misma instancia de Drupal, en la que compartiremos el mismo código fuente entre varios proyectos; de esta manera tendremos todos los módulos disponibles para su activación en la medida de las necesidades de cada uno.
En esta ocasión, utilizaremos Ddev que nos proporciona un método rápido y sencillo de instalación.

Para nuestro ejercicio hemos descargado Ddev dentro de nuestra distribución de Ubuntu, en un WSL2.
Puedes encontrar todos los pasos para realizar la instalación correspondiente a tu sistema operativo visitando su página oficial.
Una vez confirmado que todo funciona correctamente, abrimos nuestra consola de WSL2 y nos colocaremos en la ubicación donde crearemos una nueva carpeta y le daremos todos los permisos para evitar errores durante el proceso.
Luego nos moveremos a su interior para ejecutar el resto de comandos necesarios.
Ahora que estamos dentro de la carpeta, el siguiente paso será indicar a Ddev los detalles iniciales de nuestra configuración; para esto escribiremos el siguiente comando.
ddev config --project-type=drupal --docroot=web
El comando anterior indica que instalaremos un proyecto Drupal, que emplearemos el gestor de paquetes Composer, por lo que nuestros archivos principales se guardarán dentro de la carpeta web al ejecutarlo.
A continuación podremos comenzar la descarga del esqueleto para nuestro proyecto Drupal 11, por lo que ejecutaremos el siguiente comando.
ddev composer create drupal/recommended-project:^11
Aunque durante esta fase del proceso se muestre algún mensaje de error, no debes preocuparte porque se corregirá en los pasos siguientes, de todas maneras, puedes volver a asegurarte de que la carpeta tenga todos los permisos y luego añade el siguiente comando, con el que instalaremos drush y cualquier otro módulo que pueda servirnos en la administración del sitio.
ddev composer require drush/drush
Se iniciará el proceso de descarga de los principales archivos necesarios para nuestra instalación de Drupal, que sirven tanto si se trata de una instalación tradicional como de una multisitio que es el objetivo de este ejercicio.
En cuanto esté descargado, continuaremos con el resto de comandos y configuraciones necesarias.
El siguiente paso corresponde con la creación de las primeras tablas para la instalación de Drupal, con este propósito utilizaremos la herramienta drush que descargamos hace un momento.
ddev drush site:install --account-name=admin --account-pass=admin -y
Llegado a este punto, es el momento de especificar el tipo de instalación multisitio, por lo que tendremos que añadir un nuevo archivo con el nombre config.multisite.yaml, dentro de la carpeta .ddev.
Dentro de éste añadiremos los detalles correspondientes con cada uno de los sitios que instalaremos posteriormente.
En las primeras líneas establecemos el nombre para cada sitio y a continuación los usuarios, datos de acceso y permisos relacionados con las bases de datos correspondientes.
additional_hostnames: - site-1 - site-2 hooks: post-start: - exec: mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS site_1; GRANT ALL ON site_1.* to 'db'@'%';" service: db - exec: mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS site_2; GRANT ALL ON site_2.* to 'db'@'%';" service: db
Ahora que hemos indicado en la configuración del servidor los datos necesarios, lo siguiente que necesitaremos es definir su equivalente a nivel de los archivos de Drupal.
El primer paso será copiar y renombrar con el nombre sites.php, el archivo example.sites.php, que encontraremos dentro de web/sites.
Con el archivos sites.php renombrado, lo abriremos con el editor de texto y añadiremos las líneas correspondientes con los nombres de dominio de cada sitio y la carpeta a la que apuntará cada uno de ellos.
Ahora que hemos definido los dominios y las carpetas donde alojaremos los archivos para cada uno de los sitios, tendremos que añadirlas dentro de web/sites.
La última de las configuraciones necesarias en una instalación multisitio de Drupal, es copiar el archivo default.settings.php ubicado dentro de la carpeta web/sites/default y renombrarlo con el nombre settings.php en cada una de las carpetas correspondientes con los nuevos sitios.
Ahora que tenemos todos los datos necesarios, el siguiente paso será ejecutar el comando de Drush que realizará la instalación automática de cada sitio, utilizando los datos que hemos definido previamente en el archivo de configuración.
Sustituiremos el nombre site_1 por el que hayamos colocado en nuestra configuración, correspondiendo con tantos sitios como hayamos definido.
ddev drush site:install standard --db-url=mysql://db:db@db/site_1 --site-name="Site 1" --account-name=admin --account-pass=admin -y --sites-subdir=site_1
Una vez terminado el proceso de instalación, abriremos el navegador y escribiremos el dominio correspondiente que escribimos en el archivo sites.php y veremos varios sitios completos de Drupal 11, con configuraciones independientes pero compartiendo los mismos archivos del núcleo.
Para comprobar que cada sitio tiene su propia configuración, podemos abrir el archivo settings.php, dentro de su carpeta de instalación y veremos los datos en cada caso.
En esta ocasión, el archivo muestra todos los datos de conexión, así como la carpeta de sincronización ubicada en la carpeta files.
A partir de este punto, podremos descargar el resto de módulos a nivel global usando Composer y decidir en cuáles sitios los activaremos, además, cabe la posibilidad de instalar themes independientes y módulos customizados, siempre que los guardemos en la carpeta de instalación de cada sitio.