Consideraciones antes de instalar un Multisite Drupal 9
En algunos proyectos web, se hace necesario la implementación de un sistema ágil y rápido, para que se puedan realizar actualizaciones, nuevas implementaciones o mejoras en el código, invirtiendo en ello el menor tiempo posible y sin la necesidad de un gran número de personas para dichas tareas. Por ejemplo, para un grupo de empresas, o en el caso de tener varias webs con las mismas funcionalidades, pero destinadas a distintos públicos.
Una alternativa disponible en Drupal, es la posibilidad de usar la instalación Multisite, (Múltiples sitos compartiendo el mismo núcleo), esto signfica, que una vez realizadas las configuraciones principales, cada vez que se vaya a instalar un nuevo sito web, se requerirá de un mínimo de pasos, para obtener un resultado idéntico, o también disponer de una base de partida, para desarrollar nuevas funcionalidades específicas de ese sitio en concreto.
Pros y Contras de una instalación Multisite Drupal 9
Antes de optar por este tipo de instalación en un proyecto Drupal, es necesario que entiendas algunos puntos relacionados, en la mayoría de los casos, con las actualizaciones y nuevas implementaciones.
Pros:
- La instalación principal será la que controle todo el resto de webs, esto significa que todos los módulos y/o themes, podrán estar disponibles y activarse o no, según las necesidades individuales de cada sitio.
- Algunas actualizaciones de módulos o themes, podrán realizarse con la ejecución de unos pocos comandos, para todos los sitios al mismo tiempo.
- Podrás utlizar base de datos o un perfil de instalación, que sirva de base automáticamente para los nuevos sitios.
- Ahorrarás espacio de disco, ya que todos los sitios comparten el mismo número de archivos del core de Drupal.
- Todos los sitios comparten un dominio principal, por lo que, durante el desarrollo se utilizan subdominios de este, ej.: sitio1.midominio.com, sitio2.midominio.com; facilitando la instalación y configuración durante el desarrollo, luego cada uno podrá tener su propio Dominio independiente.
Contras:
- Al realizar actualizaciones del núcleo o de los módulos, deberás ejecutar comandos de borrado de Caché y Actualización para todos los sitios.
- Si se crea e instala un módulo personalizado con errores, podría afectar al resto de sitios.
Pasos para realizar una instalación Multisite Drupal 9
Paso 1 - Descarga de los archivos de Drupal 9
Antes de comenzar con el resto de configuraciones, lo primero que necesitarás hacer, al igual que con cualquier otra instalación de Drupal, será descargar los archivos correspodientes, utilizando el gestor de paquetes Composer. Aprende como instalar Drupal usando composer aquí.
Paso 2 - Configuración de los dominios para cada sitio
Para indicarle a Drupal, dónde deberá realizar la instalación de cada sitio, una vez descargados los archivos correspondientes, y configurado el servidor Apache, con cada uno de los dominios relacionados, puedes aprender cómo configurar dominios en Apache aquí, la única diferencia con relación a si realizáramos una instalación normal, en lugar de una multisite, es que en cada uno de los archivos de los dominios, el Document root deberá ser exactamente igual.
# Web root DocumentRoot /var/www/multisite/web
Paso 3 - Configuración del archivo sites.php de Drupal
Tendremos que realizar algunos cambios dentro del Drupal; el primero de ellos será renombrar el archivo example.sites.php, ubicado dentro de la carpeta 'web/sites' y dejarlo como sites.php.
A continuación deberíamos copiar el modelo que nos trae este archivo, para indicar en cada uno de los casos, el dominio correspondiente a cada una de las carpetas donde queremos realizar las instalaciones.
El resultado final será algo parecido a las líneas que aprecen bajo la siguiente imagen, por cada uno de los dominios y sitios que estemos instalando. La primera parte indica el nombre del dominio y la segunda, el nombre de la carpeta a la que apuntará dicho dominio, una vez ejecutemos el instalador de Drupal.
$sites['sitio1.midominio.com'] = 'sitio1'; $sites['sitio2.midominio.com'] = 'sitio2';
Paso 4 - Crear y configurar Bases de datos y usuarios para cada sitio
Como habrás imáginado, se recomienda que cada una de las instalaciones, deberá tener una base de datos individual, con su respectivo usuario administrador específico, para evitar fallos de todo tipo, que podrían repercutir en el resto de sitios, provocándonos grandes dolores de cabeza. Una vez crada la base de datos, podremos comenzar con la instalación de cualquiera de los sitios. Puedes aprender a crear usuario y bases de datos aquí
Paso 5 - Copia y creación de Settings.php y Files
Existe un último paso antes de comenzar con nuestras instalaciones de Drupal Multisitio, para cada uno de ellos drupal necesitará encontrar el archivo "settings.php", donde guardará las configuraciones relacionadas con la conexión a la base de datos, archivos de configuración, temporales, privados, etc. y por otro lado la carpeta "files", donde guardará todos los archivos relacionados con imágens, css, javascript, entre otros.
Por esta razón, antes de ejecutar el instalador para el primero de nuestros dominios, copiaremos y renombraremos el archivo default.settings.php, dejándolo como settings.php dentro de cada una de las carpetas correspondientes a cada sitio que instalaremos y, a continuación, también en cada una de ellas, crearemos una carpeta files.
Paso 6 - Acceder al navegador y accionar el instalador
De aquí en adelante, no hay nada nuevo, por cada una de las webs que quieras instalar, escribirás en el navegador el dominio correspondiente y a continuación, una vez activado el instalador de Drupal, lo único que tendrás que hacer es clic en siguiente hasta finalizar el proceso y repetir los pasos por cada uno de tus sitios.
Comandos para realizar cambios en tu Multisite Drupal 9
Como hemos utlizado Composer para descargar todos los archivos necesarios de nuestras instalaciones, además de contar con Drush, como parte de las herramientas que podremos emplear, significa que ambas opciones estarán disponibles para cada uno de nuestros sitios, sólo habrá que tener en cuenta unos pequeños cambios en su ejecución:
Para comprobar los módulos o el núcleo desactualizado
composer outdated drupal/*
Para ejecutar la actualización de todos los módulos y el core
composer update drupal/*
Para descargar módulos
composer require drupal/MIMODULO
Para activarlo en un sitio específico
drush en drupal/MIMODULO --uri=sitio1.midominio.com
Para borrar la caché de un sitio específico
drush cr --uri=sitio1.midominio.com
Para actualizar la base de datos en un sitio específico
drush updb --uri=sitio1.midominio.com