logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri
04/10/2025, by Ivan

El siguiente tutorial cubre los pasos necesarios para configurar un sitio multisitio en Drupal 8. Esta guía está en desarrollo y presenta solo algunos ejemplos de configuración. Existen otras opciones, como HTTPS, otros servidores web y bases de datos, así como configuraciones de hosts virtuales más avanzadas, etc.

Sin embargo, es importante tener en cuenta que usar el sistema de alojamiento Aegir es la opción preferida. Este sistema realiza todo el trabajo pesado por ti, aplicando prácticas seguras y modernas, incluyendo la configuración automática de hosts virtuales para Apache y Nginx, soporte para HTTPS, ejecución de comandos Composer, etc. Consulta la documentación sobre la configuración de “plataformas”, que en el lenguaje de Aegir se refiere a una base de código multisitio.

Descripción general del proceso:

1. Instalar una instancia de Drupal 8 que servirá como el sitio raíz de nuestra instalación multisitio. En este ejemplo, el sitio raíz se llamará d8multisite, será accesible en d8multisite.com y estará instalado en /var/www/d8multisite.

2. Crear un sitio dentro del multisitio llamado site1, que será accesible en site1.d8multisite.com.

3. Configurar site1 para que tenga sus propios módulos independientes del sitio raíz.

Paso 1: Crear el sitio maestro

Para comenzar el proceso, instala una copia de Drupal 8 en tu servidor. Lee la documentación de instalación de Drupal 8 si no estás familiarizado con el proceso.

En este ejemplo, instalaremos Drupal siguiendo estos pasos:

1.1: Crea una base de datos para el sitio raíz multisitio, por ejemplo: d8multisite.

1.2: Descarga y extrae una copia de Drupal 8 en tu directorio web.

1.3: Crea una definición de host virtual para el sitio raíz. Consulta la documentación sobre configuraciones de host virtual. Ejemplo de configuración de Apache: Para Nginx, consulta la receta oficial.

<VirtualHost *:80>
  # Configuración del host virtual para el sitio raíz multisitio de Drupal 8

  ServerAdmin me@domain.com
  DocumentRoot /var/www/d8multisite
  ServerName d8multisite.com
  ServerAlias www.d8multisite.com

  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>

  <Directory /var/www/d8multisite>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/d8multisite_error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/d8multisite_access.log combined
</VirtualHost>

1.4: Instala Drupal visitando d8multisite.com y siguiendo el instalador.

Paso 2: Configurar el primer sitio del multisitio

Ahora que el sitio raíz está configurado, podemos crear el primer sitio llamado site1. Los pasos son los siguientes:

2.1: Crea una carpeta para site1 en tu instalación multisitio: /d8multisite/sites/site1.d8multisite.com

2.2: Crea una base de datos para el sitio1, por ejemplo: d8multisite_site1

2.3: Copia /d8multisite/sites/example.sites.php como /d8multisite/sites/sites.php

2.4: Edita el archivo sites.php para que al final contenga lo siguiente:

# Hacer que el sitio raíz de Drupal reconozca a site1:
$sites['site1.d8multisite.com'] = 'site1.d8multisite.com';

2.5: Crea un host virtual para site1. Ten en cuenta que este host debe apuntar al sitio raíz, no a un subdirectorio. También puedes simplemente agregar un ServerAlias al host virtual existente, pero en este ejemplo crearemos un host separado:

<VirtualHost *:80>
  ServerAdmin me@domain.com
  DocumentRoot /var/www/d8multisite
  ServerName site1.d8multisite.com

  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>

  <Directory /var/www/d8multisite>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/site1-d8multisite_access.log combined
</VirtualHost>

2.6: Copia /d8multisite/sites/default/default.settings.php dentro del nuevo directorio del sitio como settings.php:

# Desde la carpeta raíz de Drupal
cp sites/default/default.settings.php sites/site1.d8multisite.com/settings.php

2.7: Completa el proceso de instalación de Drupal para site1 visitando su dominio.

Puedes repetir estos pasos cada vez que desees crear un nuevo sitio dentro del multisitio. También puedes usar dominios como example.com y site1.anotherdomain.com. Consulta más sobre dominios, URL y nombres de subdirectorios de sitios.

Paso 3: Habilitar módulos para cada sitio

En algunos casos, podrías querer que uno de tus sitios dentro del multisitio tenga sus propios módulos. Para hacerlo, basta con crear las carpetas adecuadas dentro de la carpeta del sitio. Consulta Estructura de carpetas multisitio en Drupal 8.

En este ejemplo, permitiremos que site1 tenga sus propios módulos:

1. Crea la carpeta modules dentro del subdirectorio de site1: /d8multisite/sites/site1.d8multisite.com/modules

2. Concede permisos de escritura a Apache: chown www-data /d8multisite/sites/site1.d8multisite.com/modules

3. Comprueba lo siguiente:
    1) Desde la carpeta raíz (fuera del subdirectorio site1), instala el módulo Pathauto con Drush: drush dl pathauto
    2) Desde el subdirectorio de site1, instala el módulo Display Suite con Drush: drush dl ds
    3) Visita ambos sitios y confirma:
      – Pathauto está disponible en ambos sitios.
      – Display Suite solo está disponible en site1.

Nota: también puedes aplicar esto a temas, bibliotecas y archivos. Se requiere más documentación y pruebas al respecto.

Uso de Drush en un multisitio

Puedes usar la opción -l:

drush -l example.com command

O usar un alias de sitio:

drush @alias command

Para verificar los alias disponibles, ejecuta:

drush site:alias

Un ejemplo de salida podría ser:

@sub1.dev:
   root: /var/www/mydomain.com/web
   uri: “https://sub1.mydomain.com
@default.dev:
   root: /var/www/mydomain.com/web
   uri: “https://sub2.mydomain.com
@third.dev:
   root: /var/www/mydomain.com/web
   uri: “https://thirddomain.com

Y el comando Drush correcto sería:

drush @sub1 updb

Nota: no usamos “.dev” en el nombre del alias.