
11 sept
Par Nanak dans Tutoriels
Mots-clefs :CMS, Drupal, installation, Multi-site, PHP
Installation multisite de DrupalL’un des atouts majeur de Drupal réside dans la possibilité de faire du multisite, c’est à dire d’avoir plusieurs site qui tournent sur une seule installation de Drupal et surtout sur une seule base de donnée. Qu’est ce que ça change d’avoir une seule installations pour 15 sites et non 15 installations pour 15 sites?
Et bien ça change beaucoup de choses.
Tout d’abord la maintenance est beaucoup plus aisée: les mises à jour ne sont à appliquer qu’une seule fois pour l’ensemble des sites, ce qui fait un gain de temps considérable! Les mises à jour majeures de Drupal, les mises à jour des modules (régulières et nombreuses), les mises à jour des thème, ne sont à effectuer qu’une seule fois.
Ensuite cela peut faire des économies d’hébergement: les forfaits avec une base de donnée ne sont pas au même prix que ceux avec 10 bases. De plus, il y a un gain d’espace notable.
Enfin, le partage des ressources est facilité car vos modules et thèmes seront partagés par vos différents site. Sans oublier que l’ajout d’un site supplémentaire est vraiment très simple.
- Installation d’un site principal:
Jusqu’ici rien de sorcier, il suffit d’installer un site basique comme nous l’avons vu dans le premier tutorial.
- Modification du fichier host/configuration DNS: 
Cette étape n’est nécessaire que si vous êtes en local: Il faut éditer le fichier host afin de faire pointer le nom de votre site sur votre machine. Lorsque vous serez en production, c’est le serveur DNS qui se chargera de tout ça. Modifiez donc le fichier /etc/hosts sous mac et unix, C:\Windows\system32\drivers\etc\hosts sous windows (voyez la simplicité unix !) et ajoutez la ligne
127.0.0.1 nom_de_votre_site
- Modification du fichier httpd.conf: 
Il faut ensuite ajouter un VirtualHost dans httpd.conf. Rendez vous à la fin de votre fichier de configuration de apache et ajoutez ceci:
{VirtualHost nom_du_site:port}
DocumentRoot /Chemin/vers/repertoire/drupal
ServerName nom_du_server
{/VirtualHost}
(remplacer les accolades par des chevrons, le filtre UTR les bloque
)
N’oubliez pas de redémarrer votre serveur Apache pour que la manipulation soit prise en compte.
- Création du répertoire de votre nouveau site dans le dossier site:
Ce répertoire doit contenir un fichier settings.php qui vient d’être copié depuis le default.settings.php. Vous pouvez dès maintenant créer les dossiers modules et themes qui contiendront les modules et thèmes propres à votre site.

Vous n’avez alors plus qu’à vous rendre à l’adresse de votre nouveau site et de lancer le processus d’installation. Attention, il y a cependant une différence avec une installation classique. Sur l’écran de configuration de votre base de donnée, dans les options avancées il faut spécifier un préfixe, c’est ce qui permettra à Drupal de différencier les tables d’un site à l’autre dans votre base. Ce préfixe est de la forme nom_du_site_ .
Ça y est, une fois l’installation terminée vous avez fini de mettre en place votre architecture multisite.
L’ajout d’un nouveau site se fera ensuite exactement de la même façon que précédement. Vous pouvez utiliser dès à présent le dossier all pour y placer les modules et themes que vous partagerez avec toutes vos installations. Les modules et themes propres seront quant à eux dans le répertoire spécifique du site.
Le résumé en vidéo:
J’attends vos questions/remarques/suggestions!
« Créer des classes Javascript avec jQuery | jQuery Trace, ou comment débugger ses selecteurs CSS avec un plugin jQuery »
Un trackback
9 commentaires
leknoppix
11 septembre 2009 à 8:07
1Très bon tutoriel video.
Je préciserais peut être quelque chose, il est possible de stocker la base de donnée du sitea dans une autre base de donnée.
Merci pour cette video de qualité. Essaie de voir si tu ne peux pas refaire le tuto ecrit car j’ai eu beaucoup de mal à le comprendre, heureusement qu’il y a une video de démo.
Bonne continuation.
tiboll
11 septembre 2009 à 9:33
2J’aime bien l’avant dernière liste de ton fichier hosts
c’est pas super discret pour l’occasion 
brice
11 septembre 2009 à 9:43
3Je conseillerais plutôt, pour des raisons de maintenance d’avoir une bases de données par site. Ce n’est pas toujours possible, notamment sur les serveurs mutualisés, mais ça permet de mieux s’y retrouver au fur et à mesure des développements.
Il est aussi possible, par le biais de directives de configuration, de partager des tables entre les sites, par exemple les contenus ou les utilisateurs. C’est un peu touchy, mais très pratique.
Nanak
11 septembre 2009 à 10:17
4@leknoppix: tu ne comprends plus a partir de quelle partie que je voie ce que je peux changer
@tiboll: j’avais la flemme de changer, mais c’est bon c’est fait
@brice: c’est aussi un point de vue, mais chaque cas est diffèrent, parfois une seule base suffit, parfois non.
Pour une connexion sur une autre base, il faut modifier le fichier settings.php. Si vous souhaitez utiliser une base supplémentaire lors de vos développements, il faut remplacer
$db_url = ‘mysqli://username:password@server_adress/databasename’;
par un array:
$db_url['main'] = ‘mysqli://username:password@server_adress/main_databasename’;
$db_url['secondary'] = ‘mysqli://username:password@server_adress/secondary_databasename’;
ce qui se traduira dans le code par
db_set_active(’secondary’);
$result = db_query(» ma_requete_sql» );
et ne pas oublier de se reconnecter à la base main après
db_set_active(’main’);
Mais j’y reviendrais plus tard
brice
11 septembre 2009 à 11:22
5Le multibase en développement est effectivement une possibilité assez méconnu de Drupal et un atout majeur en développement.
Je parle, pour ma part, des paramètres permettant de mettre en oeuvre simplement par le biais de configuration un partage d’éléments exemple :
$db_prefix = array(
‘default’ => ‘main_’,
‘users’ => ’shared_’,
’sessions’ => ’shared_’,
‘role’ => ’shared_’,
‘authmap’ => ’shared_’,
);
Ou le préfixe des tables prends d’ailleurs tout son sens.
Bonne continuation.
leknoppix
16 septembre 2009 à 9:48
6Il me semble que tu as un petit problème dans le comptage du nombre de commentaire entre la page index et la page de l’article, du moins pour cet article, il y a marqué sur la page accueil 6 coms, mais tu en as en fait 5.
Sinon après relecture de ton article, j’ai compris. Mais c’est surtout le pourquoi d’un virtualhost et le comment (le fonctionnement) qui me posait problème.
A quand la suite des tutoriels?
Clément
16 septembre 2009 à 9:55
7@leknoppix: Enfaite les commentaire sur la home compte aussi les trackbacks (lien fait par d’autres site sur cet article)
Pour la suite, je pense cette semaine ou début de semaine prochaine
Nanak
16 septembre 2009 à 20:31
8@leknoppix:
essaie sans VirtualHost et tu vas vite comprendre
Le VirtualHost te permet de définir le racine du site, sans VHost, si je tape http://www.sitea:8888.com, j’arriverai sur le contenu du répertoire /Applications/MAMP/htdocs, or mon install se situe dans /Applications/MAMP/htdocs/multi . Si je n’utilise pas de vhost, je devrais aller à http://www.sitea.com:8888/multi pour accéder à mon site.
La suite arrive dans la soirée!
Dane44
3 janvier 2010 à 17:41
9Bonjour, débutante je ne suis pas sûre d’avoir bien compris. J’ai mon premier site sous Drupal déjà en production (en phase construction/ test), est-ce que je peux encore installer un deuxième site comme expliqué dans le tuto? Dans ce cas, mes DNS pointant déjà sur l’hébergement (option multidomaines) je passe directement à l’installation? Et toujours dans ce cas, je suis chez OVH en mutualisé et j’ai à disposition trois bases de données, je peux donc en créant avant me base de données site deux faire tourner chacun des sites sur sa popre base.
Merci d’avance de vos réponses
Laisser un commentaire
Devenir Fan de Dator.fr
Nuage de tags
Sponsors
Blogs Amis
Derniers Posts
Derniers Commentaires
Les meilleurs sujets
Propulsé par WordPress