[Résolu]Explications au sujet du fonctionnement multisite de drupal

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 à tous,

J'ai lu et relu la documentation de drupal au sujet du fonctionnement du système de multisite, mais il y a des choses qui m'échape et j'espere trouver une réponse ici.

J'essayer de créer plusieurs sites avec une installation de drupal, si je comprend bien, le système de multisite permet d'utiliser le même "coeur" pour chaque site et, ainsi, une seule mise à jour du coeur de drupal permet de mettre à jour tous les sites d'un coup. Es-ce que pour le moment j'ai bon ???

Ensuite, imaginons que je souhaire créer plusieurs sites :

Explications :

http://exemple.com est un site "vitrine" qui doit être multilangue

http://sousdomaine.exemple.com est donc un site totalement différent :

http://sousdomaine.exemple.com est une sorte de page qui permet de séléctionner son pays (un peu comme http://www.asus.com/)

http://sousdomaine.exemple.com/fr est la version francaise de ce site
http://sousdomaine.exemple.com/en est la version anglaise

etc...

Je précise qu'il faut que je créer un site pour chaque langue, je ne peux pas faire un site multilangue, car les sites seront gérés par différentes personnes et le contenu peut varier, il ne s'agit pas juste d'une traduction.

Autre précision, il faudrait que chaque site ait sa propre base de donnée, pas que tous les sites soient dans la même séparés par des préfixes.

Donc comment faire cela pour partir du bon pied avec drupal ? sachant que je suis en local (voir ma configuration dans ma signature), et j'ai créer un alias :

http://localhost/drupal/ qui m'emmene dans le site par "défaut" de drupal.

J'arrive donc dans l'interface d'installation, il créer ma table avec succès, mais comment répéter l'opération pour les autres sites ? et que dois-je taper dans ma barre d'adresse pour acceder aux autres sites ?

Merci de m'avoir lu (je sais c'est un gros pavé, j'espere avoir été le plus précis possible).

D'avance Merci

zmove

Version de Drupal : 

Salut zmove,

Je crois que Drupal devrait "s'installer sur les autres domaines" en fonction du nom de domaine par lequel tu y accède. Sous un serveur web il faudra configurer APACHE pour que tes domaines pointent vers ton dossier d'installation de Drupal mais en local il faudra faire une petite manip' en plus.

Recherche le fichier HOSTS (sous XP : c:\windows\system32\drivers\etc)

et rajoute ces lignes :

127.0.0.1 exemple.com
127.0.0.1 www.exemple.com
127.0.0.1 sousdomaine.exemple.com

Ensuite recherche le http.conf de ton apache sous easyphp et configure tes virtual hosts pour qu'ils pointent vers le dossier drupal.

Je n'ai jamais tester mais je pense que ca devrait t'aider à trouver une solution. Tiens-nous au courant s'il te plait

Ok, désolé de ne pas avoir répondu plus tôt hier, mais j'ai posté ce message peu de temps avant de partir du boulot, je n'ai donc pas eu le temps d'essayer.

Donc j'ai testé ce matin, sans succès mais cela ne m'étonne pas, j'ai du mal à comprendre toutes ces histoires de serveur virtuel, de httpd.conf etc...

Voila ce que j'ai fait :

  • J'ai copié drupal 5 dans: d:\taf\maSociete\monSite\www\
  • J'ai ensuite créer les répertoires pour les différents sites qu'il faut que je développe, ce qui donne (je pars du répertoire www) :
    * /sites/monSite.com
    * /sites/sousDomaine.monSite.com
    * /sites/sousDomaine.monSite.com.fr

Je précise que je n'ai pas lancé l'installation de drupal, j'ai copié le fichier setting.php dans chaque dossier de sites sans y toucher.

Le but (une fois que je ne serais plus en local) :

Jusqu'ici, je crois que j'ai bon dans ma configuration.

[b]Maintenant, j'aimerais lancer le menu d'installation de drupal en local pour /sites/monSite.com[/b]

J'ai tout d'abord créer un alias avec wamp, quand je tape comme url : http://localhost/monSite/ je me retrouve dans l'install de drupal (mais l'install par défaut, pas celle des sites que je veux)

En suivant les indications de alfred j'ai édité C:\WINDOWS\system32\drivers\etc\hosts (je suis sous winXP SP2) j'y ai ajouté ce qu'il ma dit à la fin, donc j'ai :

127.0.0.1 localhost
127.0.0.1 monSite.com
127.0.0.1 www.monSite.com
127.0.0.1 sousDomaine.monSite.com
127.0.0.1 www.sousDomaine.monSite.com

J'ai également éditer le fichier httpd.conf qui se trouve dans C:\Web\wamp\Apache2\conf\httpd.conf

et en bas, dans la rubrique virtual hosts j'ai ça :

ServerAdmin monMail@maSociete.com
DocumentRoot /www/sites/monSite.com
ServerName monSite.com
ErrorLog logs/monSite.com-error_log
CustomLog logs/monSite.com-access_log common

Je ferme tout, je redémarre tous les services wamp et je test :

http://monSite.com
http://www.monSite.com
http://localhost/monsite/monSite.com

Enfin bref, j'ai testé un peu tout, sans succès. J'aurais besoin d'être aiguiller un petit peu car je suis perdu.

D'avance, merci.

PS : Désolé pour ce second pavé, mais j'essaye d'être le plus précis possible ^^

Drupal 5 en local sur WAMP5 1.6.5
PHP 5.1.6 / Apache 2.0.59 / MySQL 5.0.24a /phpmyadmin 2.8.2.4

ok je crois que j'ai réussi...

Donc pour faire cela j'ai donc changer mon fichier hosts comme alfred le disait.

En fait ce fichier permet de déclarer n'importe quel domaine pour pointer sur une adresse ip.

Donc par défaut, on a 127.0.0.1 localhost ce qui est logique, si je rajouter :
127.0.0.1 monsite.com, en tapant monsite.com dans la barre d'adresse de mon navigateur, ca a le même effet que si je tapait localhost.

Ensuite dans le httpd.conf à la fin au niveau des virtual hosts j'ai :

<VirtualHost *:80>
    DocumentRoot D:/Taf/masociete/monsite/www/ (le repertoire ou drupal est installé)
    ServerName monsite.com (le domaine que je dois taper pour atteindre ce repertoire)
</VirtualHost>

Apres un restart des services, si je tape http://monsite.com/ dans l'url, j'arrive bel et bien sur l'install de drupal.

Mais comment faire un multisite ensuite ?

Eh bien il faut déjà faire une installation par défaut, créer sa bdd et tout, et ensuite copier le dossier par défaut dans un autre dossier en changeant les informations du setting.php comme on le souhaite (par exemple le prefixe des tables si on veut utiliser la meme bdd mais avec des prefixes differents etc...)

Je crois que je suis pas très loin de la vérité, corrigez moi si je me trompe

Drupal 5 en local sur WAMP5 1.6.5
PHP 5.1.6 / Apache 2.0.59 / MySQL 5.0.24a /phpmyadmin 2.8.2.4

Drupal 5 en local sur WAMP5 1.6.5
PHP 5.1.6 / Apache 2.0.59 / MySQL 5.0.24a /phpmyadmin 2.8.2.4
Bon j'ai reussi à configurer le site pour les domaines suivant :

http://monsite.com
http://mondomaine.monsite.com

qui emmenent respectivement sur :

/sites/monsite.com
/sites/mondomaine.monsite.com

Pour réussir les deux premiers j'ai configuré comme cela :

httpd.conf

<VirtualHost *:80>
    DocumentRoot D:/Taf/monsite/www/
    ServerName monsite.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot D:/Taf/monsite/www/
    ServerName mondomaine.monsite.com
</VirtualHost>

setting.php de monsite.com

$base_url = 'http://monsite.com'

setting.php de mondomaine.monsite.com

$base_url = 'http://mondomaine.monsite.com'

Mais je n'arrive pas à faire le troisième :

http://mondomaine.monsite.com/fr

qui doit emmener sur :

/sites/mondomaine.monsite.com.fr

httpd.conf

<VirtualHost *:80>
    DocumentRoot D:/Taf/monsite/www/
    ServerName mondomaine.monsite.com/fr
</VirtualHost>

setting.php de mondomaine.monsite.com.fr

$base_url = 'http://mondomaine.monsite.com.fr'

J'ai raté quelque chose ?

D'avance merci

Drupal 5 en local sur WAMP5 1.6.5
PHP 5.1.6 / Apache 2.0.59 / MySQL 5.0.24a /phpmyadmin 2.8.2.4

Re zmove,

Dans ton http.conf "gastronomie.kalys.com/fr" n'est pas une valeur correcte pour le ServerName, ca ne peut fonctionner, il te faut un adresse de type nom de domaine. Je te suggère donc d'utiliser la nomenclature suivante pour gérer tes différentes versions :

Au lieu de :

Utilise plutôt :

Et configure le VirtuaHost comme ceci

<VirtualHost *:80>
    DocumentRoot D:/Taf/Kalys/Kalys/fr
    ServerName fr.gastronomie.kalys.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot D:/Taf/Kalys/Kalys/en
    ServerName en.gastronomie.kalys.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot D:/Taf/Kalys/Kalys/it
    ServerName fr.gastronomie.kalys.com
</VirtualHost>

Un dernier point :

Si "monsite.com" et "mondomaine.monsite.com" pointent au même endroit (D:/Taf/monsite/www/) alors tu peux remplacer ceci

<VirtualHost *:80>
    DocumentRoot D:/Taf/monsite/www/
    ServerName monsite.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot D:/Taf/monsite/www/
    ServerName mondomaine.monsite.com
</VirtualHost>

par cela :

<VirtualHost *:80>
    DocumentRoot D:/Taf/monsite/www/
    ServerName monsite.com
    ServerAlias mondomaine.monsite.com
</VirtualHost>

D'ailleurs en écrivant ces lignes je me demande si tu ne devrais pas plutôt faire pointer tous tes domaines de cette manieres dans ton http.conf :

<VirtualHost *:80>
    DocumentRoot D:/chemin/vers/install/drupal/
    ServerName monsite.com
    ServerAlias mondomaine.monsite.com
    ServerAlias fr.mondomaine.monsite.com
    ServerAlias en.mondomaine.monsite.com
    ServerAlias it.mondomaine.monsite.com
</VirtualHost>

En ayant configuré ton fichier HOSTS de cette manière

127.0.0.1 monsite.com
127.0.0.1 mondomaine.monsite.com
127.0.0.1 fr.mondomaine.monsite.com
127.0.0.1 en.mondomaine.monsite.com
127.0.0.1 it.mondomaine.monsite.com

Et en ayant l'arborescence suivante et en ayant configuré correctement le fichier settings.php dans chacun des répertoires :

D:/chemin/vers/install/drupal/sites/default
D:/chemin/vers/install/drupal/sites/monsite.com
D:/chemin/vers/install/drupal/sites/mondomaine.monsite.com
D:/chemin/vers/install/drupal/sites/fr.mondomaine.monsite.com
D:/chemin/vers/install/drupal/sites/en.mondomaine.monsite.com
D:/chemin/vers/install/drupal/sites/es.mondomaine.monsite.com

Normalement Drupal devrait gérer la redirection vers la version local correspondante en fonction du nom de domaine detecté.

En espérant t'avoir mis sur la bonne piste...

Bonjour alfred,

Tout d'abord merci de ta réponse qui est très complête, j'ai cependant quelques questions :

ok pour http://fr.sousdomaine.exemple.com/ au lieu de http://sousdomaine.exemple.com/fr/ il me semblait avoir déjà vu la seconde solution, je pensais que c'était possible

Ensuite,

"Si "monsite.com" et "mondomaine.monsite.com" pointent au même endroit (D:/Taf/monsite/www/) alors tu peux remplacer ceci"

J'avais posté sur le forum anglais mon problème, et quelqu'un m'a expliqué comment faire. Il m'a dit qu'il fallait que mes virtual host pointent au même endroite (le dossier d'installation de drupal) et qu'ensuite drupal allait chercher le bon en fonction du domaine qui était saisit dans l'url.

Du coup je ne comprend pas trop ta phrase qui sous entend que l'on peut faire autrement.

En tout cas, je viens de tester avec langue.domaine.site.com et ca marche..

Merci beaucoup

Drupal 5 en local sur WAMP5 1.6.5
PHP 5.1.6 / Apache 2.0.59 / MySQL 5.0.24a /phpmyadmin 2.8.2.4

Hello :)

"J'avais posté sur le forum anglais mon problème, et quelqu'un m'a expliqué comment faire. Il m'a dit qu'il fallait que mes virtual host pointent au même endroite (le dossier d'installation de drupal) et qu'ensuite drupal allait chercher le bon en fonction du domaine qui était saisit dans l'url."

Excuse moi, je n'ai apparement pas été suffisament clair dans mes explications car tu as pensé que je te présentais une autre solution alors que pas du tout :) C'est exactement la solution de ton correspondant anglais à laquelle je pensais et que j'ai cru avoir bien expliqué dans la deuxième partie de mon message quand j'écrivais :

"D'ailleurs en écrivant ces lignes je me demande si tu ne devrais pas plutôt faire pointer tous tes domaines de cette manieres dans ton http.conf :

<VirtualHost *:80>
    DocumentRoot D:/chemin/vers/install/drupal/
    ServerName monsite.com
    ServerAlias mondomaine.monsite.com
    ServerAlias fr.mondomaine.monsite.com
    ServerAlias en.mondomaine.monsite.com
    ServerAlias it.mondomaine.monsite.com
</VirtualHost>

[...]"

Breff :)

En tout cas je suis bien content que tu ai enfin trouvé une solution à ton probème.

Je te souhaite une excellente continuation et surtout n'hésite pas à nous aider à ton tour si tu en as un jour l'occasion ;)

Passe une bonne soirée et bon courage dans ton apprentissage de Drupal :)

Merci infiniment de ton aide qui explose allègrement celle de tous les SAV des FAI réunit :)

Je te souhaite une excellente continuation et surtout n'hésite pas à nous aider à ton tour si tu en as un jour l'occasion ;)

Pas de soucis, je suis pour le moment dans une phase de découverte du logiciel, mais étant donné l'ampleur du projet, quand il sera fini, je serais à même d'aider ceux qui en ont besoin. C'est d'ailleurs la philosophie dans laquelle j'aime travailler et avances, pas de soucis la dessus.

Drupal 5 en local sur WAMP5 1.6.5
PHP 5.1.6 / Apache 2.0.59 / MySQL 5.0.24a /phpmyadmin 2.8.2.4

bonjour

Grace a ce post j ai réussi a configurer mon site en "multisite" et j en suis ravis

par contre j ai découvert les variables

$conf = array(
'site_name' => 'mon site',
'theme_default' => 'montheme',
'anonymous' => 'anonyme',
);
existe il d autres variable pouvant etre inséré comme la page d accueil par défaut du multisite...

Autre question, qi jeme logue sur le site mere j arive logué sur mon site enfant, par contre je n arrive pas a me logguer sur le site enfant.

Avez vous une idée de la raison?

slt je voudrai m'informer au prés de toi zmove comment t'a pu faire un site qui ressemble a asus car moi aussi je doit faire une carte interactive sur mon site qui mène vers de multiple site pour chaque région , je voulais m'informer comment t'a ou le faire et si t'a utiliser drupal pour ça.