Multi-site

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Alors voilà je vais essayer de m'expliquer du mieux que je peux..
Je dois installer Drupal sur un serveur linux. Seulement je l'utiliserai plusieur pour créer différent site.
J'ai lu plusieur tutoriaux a ce sujet mais ca ne marche pas, j'ai du raté quelque chose mais quoi...
Sur le serveur j'ai dejà decompressé Drupal il se trouve donc www.monDomaine.com/Drupal/drupal-6.19/

Comme dit dans les tutoriaux dans www.monDomaine.com/Drupal/drupal-6.19/sites/
J'y est rajouté un dossier Bio.com et dedans j'ai rajouté le default.setting.php et fait un copier/coller pour le setting.php

Lorsque je vais sur ma page pour l'installer, je vais dons sur www.monDomaine.com/Drupal/drupal-6.19/sites/Bio.com???
la j'y vois just mon fichier setting.php

Que dois-je faire? pour installer Drupal?

Forum : 
Version de Drupal : 

Bonjour,

quel que soit le site auquel vous souhaitez accéder, l'url n'est pas celle du dossier dans /sites/ mais celle de l'installation de drupal (/drupal-6.19/ dans votre cas).

Si vous accédez à votre site principal par l'adresse http://www.monDomaine.com/Drupal/drupal-6.19/ (ce qui est pas terrible, mieux vaudrait le mettre à la racine du nom de domaine), vous accèderez à votre nouveau site (Bio.com) par l'adresse http://Bio.com/Drupal/drupal-6.19/ (à condition que vous possédiez bien le nom de domaine correspondant, et qu'il redirige bien vers votre serveur).

Quoique, je ne suis pas certain du comportement du systeme multisite de drupal dans le cadre d'une installation dans un sous-dossier, vous devrez peut-etre appeler votre dossier /sites/Bio.com.Drupal.drupal-6.19 .
Dans tous les cas, mieux vaut éviter d'avoir tant de sous-dossiers inutiles.

Ben en faite, je n'ai pas le choix de le faire a partir de la car je suis en stage et c'est l'adresse ke mon maitre de stage m'a donnée et finalement j'ai tout mis dans monDomaine.com/Drupal/

Donc si je comprend bien je dois installer drupal normalement mais comment va-t-il savoir ke je veux allé à Bio.com ou a un autre site? (et oui tout ce que je di la existe j'ai juste changé le nom c'est tout)..

Bonjour,

Le fait de créer un sous-site a l'avantage de disposer de la même plateforme (les modules peuvent être partagés par l'ensemble des sous-sites s'ils sont placés dans le répertoire sites/all/modules) mais à l'inconvénient de ne pas partager leurs informations (plusieurs backoffice différents).

Si au final, il est nécessaire de réaliser des consolidations de données (à des fins statistiques), il peut être judicieux de ne pas créer de sous-sites, mais plutôt d'utiliser le module Domain Access, qui permet d'associer du contenu à un domaine. De cette façon, les noeuds, les blocs (avec un module supplémentaire), des vues, des utilisateurs, etc. peuvent être spécifiques à un domaine en particulier. Pratique lorsqu'un site doit proposer une zone réservé à des particuliers et un autre à des professionnels par exemple.

Cordialement,

Desolé mais je n'ai pas tout compris c'est pas très clair. Et j'ai pas l'impression que ca repond à ma question... Peux-tu un peu mieux m'eclairer?
Par contre je viens de regarder mais dans /sites/all je n'ai qu'un fichier README.txt

Jennifer,

Drupal est en effet une plateforme qui te permet de gérer plusieurs sites différents.
Tu peux gérer ça de plusieurs manières :

  • Soit créer des sous-sites (ce que tu essaies de faire)
  • Soit ne posséder au final qu'un seul site, et faire en sorte que les données qui y sont contenus (ce que l'on appelle des noeuds) soit rattachées à plusieurs noms de domaine différents

C'est ce dernier cas que je tentais de t'expliquer : Tu mets en place un Drupal sur ton serveur, puis tu fais pointer 2 noms de domaine différents dessus (par exemple www.test1.com et www.test2.com).
Un module permet ensuite d'attribuer une page au nom de domaine www.test1.com et une autre au nom de domaine www.test2.com.
Au final, tu peux créer 2 sites complètement différents (thème différent, données différentes) sur la même plateforme (même zone d'administration).

Pour le cas des sous-sites (que tu es en train d'implémenter), voici la procédure à suivre :

  • Il faut créer un nouveau répertoire dans le dossier "sites", possédant le nom du nom de domaine (par exemple "test1.com"). Si tu es dans le cas où le site est accessible via une adresse du type "www.test1.com/lesitedetest", il faut que tu nommes ton répertoire "test1.com.lesitedetest".
  • Ensuite, il faut que tu y copies le fichier "default.settings.php" qui se trouve dans le répertoire "sites/default" en le renommant "settings.php"

Tu n'as plus qu'à accéder à ton site via l'adresse définie. Tu vas repasser par le processus d'installation de la plateforme : normal, il s'agit d'un nouveau site. Les fichiers sont partagés (pour la plupart) par l'ensemble des sous sites, mais les données y sont spécifiques. D'ailleurs, tu pourras t'apercevoir une fois l'installation terminée, que les tables se retrouvent en double, mais préfixées par un mot clé défini dans l'une des étapes de l'installation.

En espérant avoir été clair ;-)

Salut David,
Désolé de ma réponse tardive, oui c'est clair mais j'y trouve encore quelque difficultés, comme tu peux le remarquer ne suis pas très doué..
Alors en faite, finalement, j'ai peut-être fait une betise, je ne sais pas.

J'ai installé Drupal par défault qui souvre sur le nom de Domaine, je ne lui ai pas mis de prefixe.

Et maintenant si je veux faire une 2ème site totalement différent mais qui utilisera la base de données Drupal c'est tout, il n'a aucun rapport avec le premier domaine. Est-ce que c'est possible de la faire?

Pitié me dit pas que je vais devoir recommencé et que je me suis trompé..
Si je dois pointé mon 2ème site, comment je le fais et dans quel fichier?

Merci de ta reponse

Jennifer, Oui, je parle bien de la même chose (mon exemple est différent, mais l'idée est la même).

Quels sont les noms de tes sites (dans ton exemple) ?
Par exemple, est-ce que c'est quelque chose comme :

Si c'est le cas, tu es juste dans le cas de sous-sites, et tu n'as plus qu'à suivre les instructions que je t'ai donné.

Dis-moi si tu as un problème.

Donc je vais résumé tout depuis le depart..

1) Je decompresse le fichier Drupal sur mon serveur...
2) Dans www.monDomaine.com/Drupal/sites/ je crée un dossier ki va porter le nom de mon premier site + l'url (ex: bio.com.monDomaine.com.drupal) et je fai la meme chose par la suite pour mes autre site.
3) Pour installer Drupal je vais donc sur bio.com et il va m'installer drupal.

Dois-je mettre un prefix pour le 1er site ou non?
Lorsque je ferai mon 2ème site je lui met un autre prefix aussi alors?

ok cool merci de ta patience et de m'avoir repondu...
Juste une dernière question jespère a quoi sert mes prefixe de table? ca s'installe juste dans ma base de données Drupal?

Et lors de la création de mon dossier quand j'ecris le nom du domaine dois je mettre le www ou pas

-- bio.com.monDomaine.com.drupal
ou
-- bio.com.www.monDomaine.com.drupal

et le fait qu'une page index existe dejà sous le nom de bio.com mai pas sous drupal ca ne va rien changé?

Pas de problème pour les réponses...

En fait, tu n'auras au final qu'une seule base de données pour l'ensemble de tes sites. Quand tu va créer un sous-site, un lot de tables va être créé pour le sous-site. Si tu crée plusieurs sous-sites, il faut donc que les tables soient préfixées (soussite1_node, soussite2_node, etc.).

Dans une base, deux tables ne peuvent pas avoir le même nom.

En ce qui concerne les noms des répertoires, il ne faut pas mettre les "www".
En clair :

Ok mais en faite j'ai du mal m'exprimer ou quoi...

Ce qu'il y'a pour acceder à bio.com je dois faire

www.monDomaine.com/Drupal/bio.com : donc le nom de mon dossier serai bio.com.monDomaine.com.drupal

et pour les suivants

pour le site www.monDomaine.com/Drupal/site2.com je fais le repertoire site2.com.monDomaine.com.drupal

etc etc

et je me repète encore mes tout ces dossiers je l'ai met bien dans /Drupal/sites

et ca fonctionnera? Jespère

Ah ok je ne l'avais pas compris de ce sens la.. Decidement je vais finir par y arriver..
Merci je vai tester ca et je dis quoi après... Croisons les doigt

Et ben je viens d'essayer en mettant comme nom de repertoire monDomaine.com.drupal.bio.com

que j'ai mis dans drupal/sites
et pour l'installer je vais sur www.monDomaine.com/drupal/bio.com
ben ca ne marche pas, avec ton aide je vais y arriver, jen suis sure

Jennifer,

Alors la procédure à suivre :

Cas concret :

1ère étape :
Il faut modifier le vhost d'apache pour que les urls "drupal/site1.com" et "drupal/site2.com" pointent vers le répertoire d'installation de Drupal. On fait ça via la directive "Alias".
Exemple de vhost pour le domaine "www.mondomaine.com" :

<VirtualHost 127.0.0.1:80>
    ServerAdmin david.olmeta@addvista.fr
    DocumentRoot "Z:/www/"
    ServerName www.mondomaine.com
    ServerAlias mondomaine.com
    ErrorLog "logs/mondomaine.com-error.log"
    CustomLog "logs/mondomaine.com-access.log" common
    Alias /drupal/site1.com "Z:/www/drupal"
    Alias /drupal/site2.com "Z:/www/drupal"
</VirtualHost>

On considère ici que le répertoire Web est le répertoire "Z:/www".

2ème étape :
Il faut créer les deux répertoires :

  • sites/mondomaine.com.drupal.site1.com
  • sites/mondomaine.com.drupal.site2.com

et copier dedans le fichier default.settings.php qui se trouve dans le répertoire "sites/default", en le renommant "settings.php".

3ème étape :
Il suffit d'accéder aux urls :

Remarque :

Pour tester en local, il faut modifier le fichier "hosts" de la machine (sous Windows : C:\WINDOWS\system32\drivers\etc\hosts) et ajouter les lignes :

J'ai testé sur ma machine Windows, tout est OK avec cette procédure.

Tiens-moi au courant.

Cordialement,

Bonjour,
J'aimerais faire la même chose, mais directement sur le serveur de mon hébergeur. Je sais qu'il faut faire des liens symboliques et des redirections d'URL, mais je me mélange les pinceaux.

J'ai consulté d'autres réponses dans le forum, mais je n'y arrive toujours pas.

Comment avoir : site.com/site1 ; site.com/site2... et ainsi de suite, avec une seule BD ?