Guide Drupal 6 - Épisode 1 : installer un site ou une plateforme multi-sites sous Drupal
Je travaille en ce moment sur un projet de plateforme multi-sites sous Drupal. L'avantage de Drupal, dans ce type de projet, 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 (y compris 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. 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. Bref, c'est un pur bijou et, comble de bonheur, tout cela est très facile à mettre en place, comme vous allez le voir.
Toujours installer Drupal en multi-sites
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 est 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.
Le principe : une histoire de répertoires
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.
Pas-à-pas : installer d'abord le premier site
- Faire pointer les noms de domaine à utiliser sur l'espace d'hébergement et choisir quel site (et donc quel nom de domaine) sera le site principal.
- Télécharger, décompresser et installer Drupal comme s'il n'y avait qu'un seul site, sur le nom de domaine principal retenu.
- Ne pas lancer maintenant l'installation automatique et, par conséquent, ne pas utiliser la configuration /sites/default
- Créer tout de suite le sous-dossier du 1er site dans le répertoire /sites (en utilisant le nom de domaine principal, il en faut bien un pour commencer !) et y copier le contenu du dossier /sites/default (au niveau des permissions, ce dossier devra être accessible en écriture, mais seulement pendant l'installation). Drupal est prêt.
- Lancer l'installation automatique en se rendant sur l'URL du site (nom de domaine ou sous-répertoire d'installation du nom de domaine ou adresse IP du serveur). Se laisser alors guider et répondre aux questions : Drupal vous demandera sûrement de renommer le fichier default.settings.php en settings.php dans le répertoire de votre 1er site et de permettre provisoirement l'écriture dans ce fichier et dans son dossier.
- Au moment de saisir les identifiants MySQL, ne pas modifier le préfixe des tables dans les Options Avancées puisque ce premier site sera le site par défaut
- Dès que l'installation est terminée, il est possible de publier du contenu sur ce premier site.
- Rétablir des permissions sécurisées : 550 sur le répertoire du site dans /sites et 444 sur son fichier settings.php.
Pas-à-pas : installer ensuite le second site
- Créer le sous-dossier du 2ème site dans le répertoire /sites en respectant les règles de nommage citées plus haut (nom de domaine distinct, sous-domaine ou sous-dossier) et y copier le contenu du dossier /sites/default (comme pour le premier site, au niveau des permissions, ce dossier devra être accessible en écriture, mais seulement pendant l'installation)
- Lancer l'installation automatique en se rendant sur l'URL du deuxième site (nom de domaine distinct, sous-domaine ou sous-dossier). Se laisser guider et répondre aux questions : là aussi, Drupal vous demandera sûrement de renommer le fichier default.settings.php en settings.php dans le répertoire de votre 2ème site et de permettre provisoirement l'écriture dans ce fichier et dans son dossier. Si Drupal indique que l’installation est déjà faite, c’est qu’il utilise une définition de site déjà existante, ou celle par défaut. Vérifier à ce stade la concordance entre l'URL et ce qui est défini dans le dossier /sites.
- Au moment de saisir les identifiants MySQL, aller dans les Options Avancées et modifier le préfixe des tables ; si cela n'est pas fait, la première installation sera écrasée par celle-ci
- Si tout se déroule normalement, vous avez une plateforme multi-sites dans laquelle Drupal gère tout seul les différentes URL en leur associant la bonne configuration. Il vous suffit de vous rendre sur chaque URL pour vous en rendre compte. Voilà, c'est tout. Durée de l'opération : 10 minutes à peine.
- Ne pas oublier de rétablir des permissions sécurisées : 550 sur le répertoire du site dans /sites et 444 sur son fichier settings.php.
Installez autant de sites que vous voulez !
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 ?
Installation uni-site classique
Dans le cas d'une installation uni-site classique, selon la procédure automatique proposée par Drupal, il ne faut pas simplement renommer le fichier default.settings.php en settings.php : il faut créer un fichier settings.php en copiant default.settings.php tout en conservant default.settings.php. Dans le répertoire sites/default, on doit donc avoir à la fois le fichier default.settings.php et le fichier settings.php. Petit détail qui peut vous économiser du temps...
PS : ce tutoriel a été testé avec succès sur un hébergement Gandi.
Commentaires
Samba (non vérifié)
25 Décembre 2011 - 18:15
Permalien
Like
Excellent tuto. C'est clair, net et précis. De plus, je dirais que c'est une bonne pratique à adopter vue qu'un site est appelé à toujours évoluer. C'est toujours embêtant de se rendre compte qu'une modification ou évolution aurait nécessitée un certain paramétrage au départ.
Serge (non vérifié)
23 Janvier 2012 - 20:34
Permalien
C'est vraiment un bon tuto.
C'est vraiment un bon tuto.
Est-ce qu'il existe un moyen d'automatiser ça afin de permettre la création de site pour les users ?
Ajouter un commentaire