Configuration d'un multisite Drupal 9 en local avec DDEV : Hébergé sur Acquia avec Acquia Pipelines
Dans mon emploi actuel, l'équipe que je dirige assure le support de trois sites web d'une grande organisation privée. Les trois sites web sont hébergés sur Acquia. Les sites web font partie d'une configuration multisite et le code source est géré à l'aide du service Acquia Pipelines.
En bref, Acquia Pipelines est un service d'intégration et de déploiement continus fourni par Acquia, une plateforme basée sur le cloud qui offre un hébergement, un support et une gestion de niveau entreprise pour les sites web Drupal.
Qu'est-ce que DDEV ?
DDEV est un outil en ligne de commande qui aide les développeurs à configurer rapidement et facilement des environnements de développement locaux. Il est conçu pour simplifier le processus de configuration d'un serveur web local, la gestion des dépendances et la configuration des environnements de développement. Si c'est la première fois que vous essayez de travailler avec DDEV, assurez-vous de consulter ce post pour commencer avec DDEV.
Qu'est-ce qu'un multisite Drupal ?
Drupal multisite est une fonctionnalité qui permet de gérer plusieurs sites web à l'aide d'une seule base de code et d'une seule base de données Drupal. Dans une configuration multisite Drupal, plusieurs sites web partagent une seule installation Drupal, ce qui peut réduire le temps et les coûts de maintenance.
Chaque site web dans une configuration multisite Drupal possède son propre domaine ou sous-domaine unique et peut avoir son propre thème, ses propres modules, son propre contenu et ses propres configurations. Cependant, ils partagent la même base de code et la même base de données.
Drupal multisite est utile lorsque vous avez besoin de gérer plusieurs sites web qui partagent une base de code, un thème ou des fonctionnalités similaires, comme un réseau de sites web connexes, ou plusieurs versions linguistiques d'un site web. Il peut simplifier la maintenance des sites web, réduire les coûts et améliorer la cohérence entre les sites web.
La recette pour configurer le multisite local
- Vous devez configurer le projet en utilisant DDEV. Consultez ce post pour commencer.
- L'emplacement du docroot à partir duquel le site est servi doit être web/docroot. Une question concernant l'emplacement du docroot vous sera posée lors de l'exécution de la commande
ddev config
- L'emplacement du docroot à partir duquel le site est servi doit être web/docroot. Une question concernant l'emplacement du docroot vous sera posée lors de l'exécution de la commande
- Dans le dossier .ddev, créez un fichier nommé config.multisite.yaml
- Le fichier config.multisite.yaml doit contenir le contenu suivant :
additional_hostnames:
- site1
- site2
- site3
- Mettez à jour le fichier sites.php pour ajouter les trois domaines locaux et leurs dossiers correspondants.
Le fichier sites.php est un fichier de configuration qui vous permet de mapper des noms de domaine ou des URL à des répertoires de sites Drupal spécifiques.
$sites['site1.ddev.site'] = 'site1_directory';
$sites['site2.ddev.site'] = 'site2_directory';
$sites['site3.ddev.site'] = 'site3_directory';
- Créez trois bases de données en utilisant PHPMyAdmin. Si le nom du projet DDEV était mysite, vous pouvez accéder à phpmyadmin à l'adresse https://mysite.ddev.site:8037/
- Exportez les sauvegardes de base de données d'Acquia et importez-les dans les bases de données correspondantes que vous avez créées à l'étape 4.
- Si les bases de données sont volumineuses, vous pouvez utiliser une commande ddev pour les importer :
ddev import-db --target-db=DATABASE_NAME --src=.tarballs/DB-BACKUP_FILE.sql.gz
- Si les bases de données sont volumineuses, vous pouvez utiliser une commande ddev pour les importer :
- Dans le répertoire de chaque fichier, vous devez ajouter ce fichier ddev ici.
- Le fichier settings.php de chaque site doit être mis à jour pour inclure le code de ce fichier.
- Exécutez
ddev ssh
puiscomposer install
- la commande
ddev ssh
vous permet d'accéder à l'interface de ligne de commande (CLI) d'un conteneur web ddev en cours d'exécution, vous pouvez ainsi exécuter composer, drush et d'autres commandes depuis l'intérieur du conteneur web.
- la commande