À partir de mes différentes lectures et expériences, je vous propose un tutoriel synthétique et efficace pour installer un site ou une plateforme multi-sites sous Drupal. L’avantage de Drupal, en la matière, c’est qu’il permet nativement (et donc facilement) de configurer et de gérer plusieurs sites distincts sur une seule et même installation. Chaque site peut avoir son propre nom de domaine et son propre contenu (distingué par des préfixes de tables dans la base de données MySQL) tout en étant installé, configuré et géré sur la même installation de Drupal utilisant une seule et même base de données MySQL.
Les avantages sont énormes : le code PHP de Drupal n’est installé qu’une seule fois et est partagé par chaque site, si bien qu’une seule mise à jour de Drupal s’applique à tous les sites installés. Les thèmes et modules sont disponibles pour tous les sites mais il reste possible de n’autoriser un thème ou un module que pour un seul site (tout dépend du dossier d'installation dudit module). Bref, c’est un pur bijou et, comble de bonheur, tout cela est très facile à mettre en place, comme vous allez le voir.
La force de Drupal étant ses modules et leur nombre incroyable, l’expérience montre que télécharger des modules, les décompresser et les activer devient rapidement une tâche longue et fastidieuse, surtout si vous voulez utiliser de nombreux modules. Pour éviter cela, il faut prendre les meilleures précautions dès la phase d’installation.
Téléchargez donc la version de Drupal proposée par son fondateur lui-même, à savoir Acquia Drupal. Cette version de Drupal est exactement la même que celle que vous trouverez sur le site drupal.org (avec le core le plus récent) sauf qu’elle contient déjà, préinstallés, quantité de modules indispensables que, de toutes façons, vous aurez besoin d’installer. Autant se simplifier la vie. Il vous suffit alors d'aller vérifier dans "Construction du site > Modules" quels modules vous voulez activer / désactiver.
Chaque site créé utilise le même code de Drupal mais dispose de sa propre configuration et de ses propres fichiers, stockés dans un sous-répertoire dédié du répertoire /sites. Par exemple, dans le cas d’un premier site sur le domaine www.bonjour.com et d’un second site sur www.bonsoir.com, il faudra créer pour chacun d’entre eux un sous-répertoire dans le répertoire /sites. Chacun de ces répertoires devra contenir un fichier de configuration nommé settings.php.
L’astuce réside dans le nom du répertoire. Si vous voulez que vos sites possèdent des noms de domaines différents, il suffit de donner à chaque répertoire le nom du domaine correspondant. Par exemple, dans le cas des 2 sites www.bonjour.com et www.bonsoir.com, les répertoires seront nommés /sites/bonjour.com et /sites/bonsoir.com. Si vous ajoutez les “www.” dans le nom du répertoire, seules les URLs du type http://www.bonjour.com seront accessibles et pas celles du type http://bonjour.com.
Si vous ne souhaitez pas utiliser des noms de domaine différents, mais simplement utiliser des sous-domaines ou des sous-répertoires de votre site principal, il suffit de nommer autrement les répertoires en question. Pour utiliser un sous-domaine du type http://travail.bonjour.com, il faut nommer le répertoire en /sites/travail.bonjour.com. Si vous voulez utiliser un sous-répertoire pour une URL du type http://bonjour.com/travail, il faut nommer le sous-répertoire dans sites de la manière suivante : /sites/bonjour.com.travail.
Dans tous les cas, chaque répertoire contient son propre fichier settings.php. Et chaque site ainsi configuré peut avoir ses propres modules et thèmes, en plus de ceux se trouvant dans les dossiers /modules et /themes standard. Pour cela, il suffit de créer des répertoires /modules et /themes dans le répertoire de configuration de chaque site. Par exemple, le répertoire /sites/bonjour.com/ pourra contenir, en plus de son fichier settings.php, son propre dossier /themes/nom_du_theme/, son propre dossier /modules/nom_du_module/, etc.
Pour installer un nouveau site, il vous suffit de répéter les opérations effectuées ci-dessus pour installer le second site. Vous pouvez répéter l’opération autant de fois que vous voulez et gérer ainsi de très nombreux sites, complètement différents, tant au niveau du design qu’au niveau du contenu, avec une seule et même installation de Drupal. Que du bonheur, non ?
Pour finir, je vous recommande très fortement de toujours installer Drupal de cette manière, même si vous ne voulez exploiter ou mettre en oeuvre qu’un seul site. Cela vous permettra, si un jour vous changez d’avis, d’ajouter des sites à votre plateforme Drupal sans avoir à tout recommencer, et ce, très facilement. De plus, faire une installation multi-sites ne prend pas plus de temps et n’est pas plus compliqué que faire une installation uni-site. Par conséquent, si vous voulez n’installer qu’un seul site, vous n’avez qu’à faire exactement ce qui a été décrit dans ce tuto, sauf la dernière étape visant à créer un second site. Vous la ferez le jour où vous en aurez besoin, ou alors vous ne la ferez jamais, ça ne changera rien à votre site. Mais si un jour ça vous prend, en 2 minutes c’est fait.
PS : Ce tutoriel a été testé avec succès sur un hébergement Gandi. Il est publié ici sous la forme d'un wiki et a du coup été modifié de diverses manières par plusieurs utilisateurs. Pour lire le tutoriel original de Lektum, rendez-vous sur Lektum.info.
Ce document est une traduction tirée du fichier readme de Drupal.
Il est possible de faire fonctionner plusieurs sites avec une même installation (comprenez les mêmes fichiers PHP) de Drupal.
Les configurations supplémentaires sont créées dans des sous-répertoires du répertoire ‘sites’. Chaque sous-répertoire doit contenir un fichier ‘settings.php’ qui définit les paramètres de configuration. Une façon simple de créer des sites supplémentaires est de copier le répertoire ‘default’ et de modifier le fichier ‘settings’ qu’il contient avec les paramètres qui vont bien.
Le nom du nouveau répertoire dépend de l’URL du site. Pour www.exemple.fr, le répertoire serait : ‘sites/exemple.fr (notez qu’on peut retirer ‘www.’ si les utilisateurs peuvent accéder à votre site directement par http://exemple.fr).
Il n’est pas obligatoire que les sites possèdent des noms de domaine différents. Vous pouvez aussi utiliser des sous-domaines ou des sous-répertoires pour vos sites Drupal. Par exemple, exemple.fr, sous.exemple.fr et sous.exemple.fr/site3 peuvent être définis comme des sites Drupal indépendants. Les paramètres pour une configuration de ce type ressembleraient aux points suivants :
sites/default/settings.php
sites/exemple.fr/settings.php
sites/sous.exemple.fr/settings.php
sites/sous.exemple.fr.site3/settings.php
Par exemple, pour la configuration www.sous.exemple.fr/site3, Drupal cherche les fichiers de configuration dans l’ordre suivant, et utilise le premier fichier qu’il trouve :
sites/www.sous.exemple.fr.site3/settings.php
sites/sous.exemple.fr.site3/settings.php
sites/exemple.fr.site3/settings.php
sites/www.sous.exemple.fr/settings.php
sites/sous.exemple.fr/settings.php
sites/exemple.fr/settings.php
sites/default/settings.php
Si vous avez installé Drupal sur un port non-standard, le numéro du port est traité comme le premier sous-domaine, par exemple : http://www.exemple.fr:8080 peut être chargé depuis sites/8080.www.exemple.fr/. Le numéro du port peut être omis, selon la démarche ci-dessus, si aucune configuration spécifique au port n’est trouvée, comme pour un vrai sous-domaine.
Chaque site configuré peut avoir ses propres modules et thèmes qui seront proposés en plus de ceux se trouvant dans les dossiers ‘modules’ et ‘themes’ standard. Pour utiliser des modules ou des thèmes spécifiques au site, il suffit de créer un répertoire ‘modules’ ou ‘thèmes’ dans le répertoire de configuration du site. Par exemple, si sous.exemple.fr a un thème personnalisé et un module spécifique qui ne doit pas être accessible aux autres sites, la configuration sera la suivante :
sites/sous.exemple.fr/:
settings.php
themes/theme_specifique
modules/module_specifique
NOTE : pour plus d’information sur des hôtes virtuels ou les paramètres de configuration, consultez le manuel Drupal sur drupal.org.’,’On peut faire fonctionner plusieurs sites avec une même installation de Drupal.
Les configurations supplémentaires sont créées dans des sous-répertoires du répertoire ‘sites’. Chaque sous-répertoire doit contenir un fichier ‘settings.php’ qui définit les paramètres de configuration. Une façon simple de créer des sites supplémentaires est de copier le répertoire ‘default’ et de modifier le fichier ‘settings’ qu’il contient avec les paramètres qui vont bien.
Le nom du nouveau répertoire dépend de l’URL du site. Pour www.exemple.fr, le répertoire serait : ‘sites/exemple.fr (notez qu’on peut retirer ‘www.’ si les utilisateurs peuvent accéder à votre site directement par http://exemple.fr)