Drupal
21/09/2011

Drupal et l'installation multi-sites, multi-domaines

image
Cela fait plusieurs fois que l'on rencontre la problématique de l'utilisation d'un seul backoffice pour plusieurs front-office. Si la problématique n'est pas vraiment complexe, elle nécessite tout de même qu'on s'y arrête un moment.

Cela fait plusieurs fois que l'on rencontre la problématique de l'utilisation d'un seul backoffice pour plusieurs front-office. Si la problématique n'est pas vraiment complexe, elle nécessite tout de même qu'on s'y arrête un moment.

Plusieurs cas peuvent se présenter :

  • Les front-office sont sur des noms de domaine différents / sur un même domaine
  • Les types de contenu sont identiques / sont différents
  • Il n'y a qu'une seule / plusieurs bases de données

Pour cet article, nous avons choisi 2 cas afin de mettre en avant les particularités d'un tel site Drupal.

Cas numéro 1: 

Une installation Drupal avec une seule base de données. Site accessible à partir de plusieurs noms de domaine.

Il faut, dans ce cas, configurer les alias dans apache afin de permettre l’accès au même répertoire home/www/drupal depuis par exemple de 2 noms de domaines différents.
Il faut donc créer le site initial et les autres domaines seront des alias sur ce domaine initial.

2 petits exemples pratiques d'utilisation :

  • Un site multilingue. Il est parfaitement possible de rendre accessible chaque langue sur un domaine différent au lieu de mettre toutes les langues sur le même nom de domaine en lui ajoutant le préfixe de la langue en question ou encore sur un sous domaine. Cela se paramètre dans la configuration de multilinguisme de Drupal.
  • Un backoffice unique pour plusieurs sites – afin de faciliter la gestion de contenu pour l'administrateur du site.

Cas numéro 2 :

Une seule installation Drupal, avec plusieurs bases de données ; une pour chaque nom de domaine.

Ce cas ressemble au précédent en ce qui concerne l’idée des virtual hosts mais s'en éloigne pour les différences suivantes :

  • Chaque site a sa propre base de données. Il faut donc créer pour chaque nom de domaine un répertoire dans l’installation de Drupal pour y mettre le fichier settings.php propre à chacun. Ce fichier contient en effet la configuration de chacun des bases de données.
  • Chaque front-office aura ses propres configurations. Chacun peut aussi avoir des modules dédiés sans pour autant enlever la possibilité d'avoir des modules en commun.

La difficulté est donc de bien mettre ce qui concerne chaque domaine dans le bon répertoire.

Par exemple, considérons les domaines www.exemple1.com et www.exemple2.com qui utilisent la même installation de Drupal. Il faut alors créer 2 répertoires dans web/sites correspondants à chaque nom de domaine afin d'y mettre les modules et le thème propre au domaine en question.

L'avantage essentiel d’un tel cas est de faciliter l’installation et la mise à jour des modules pour plusieurs sites, au lieu de faire la mise à jours n fois sur n domaines il ne faut la faire qu'une seule fois.
Mais ce système a aussi des inconvénients. Il est par exemple parfaitement possible d'utiliser une même installation de Drupal pour des clients différents. Un problème se pose si l'un des admin souhaite une mise de Drupal alors que les autres ne le souhaitent pas.
Il peut aussi arriver d'avoir des duplications de modules dans les différents répertoires ou même entre le répertoire commun web/sites/all et les autres répertoires propres aux domaines.

En synthèse, utiliser une même installation de Drupal pour plusieurs sites doit être une possibilité à prendre en compte lorsqu'un donneur d'ordres dispose de plusieurs sites. Cette solution peut faciliter notamment les mises à jour contenu et logiciels.