Installer une plateforme multi-sites sous Drupal

Onglets principaux

La documentation Drupal 6 n'est plus maintenue et en cours de dépublication.

À 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.

Préambule

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.

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

  1. 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.
  2. 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.
  3. Ne pas lancer maintenant l’installation automatique et, par conséquent, ne pas utiliser la configuration /sites/default
  4. 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.
  5. 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. Ne pas renommer directement default.settings.php mais en faire une copie dans le même répertoire et ensuite renommer cette copie en settings.php, sans quoi l'installe se bloquera au moment de la connexion à la base de données !!
  6. 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
  7. Dès que l’installation est terminée, il est possible de publier du contenu sur ce premier site.

Pas-à-pas : installer ensuite le second site

  1. Modifier la configuration Apache pour que votre nouveau site pointe bien vers Drupal... Dans le cas d'un sous-dossier il faudra ajouter un lien symbolique dans le dossier drupal avec le nom de votre sous-dossier : cd /usr/share/drupal6; ln -s . sousdossier
  2. 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)
  3. 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.
  4. 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
  5. 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.

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 ?

Toujours installer Drupal en multi-sites

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.

Version de Drupal : 

Commentaires

Article très intéressant. Merci.

Cependant je me trouve justement dans la situation regrettable évoqué, j'ai déjà un site qui tourne sous Drupal et dont le non de domaine pointe vers /sites/default qui contient tout mes fichiers.

Comment faire pour à présent ajouter d'autres site avec d'autres noms de domaine.

D'avance merci,

Valery Landon

C'est un point que je n'ai pas encore pu éclairer. De même, je me demande comment changer le nom de domaine d'un site déjà installé sur une plateforme multi-sites pour lui affecter un autre nom de domaine. Sur ce point, les lumières de ceux qui sont plus avancés que moi là-dessus sont les bienvenues !

Bonjour,

je possède actuellement un installation multi-sites avec la version 6.10 de Drupal.
J'aimerais évidemment mettre à jour mon installation avec la version 6.13 actuelle et mettre à jour quelques modules comme ImageField par exemple. Etant donnée que mon installation contient plus de 15 sites, quelle serait la manip la plus efficace et la plus rapide pour parvenir à cette mise à jour ?? Dois-je lancer l'update.php pour chacun de mes sites ??

Merci pour votre retour.

À mon avis, le nombre de sites ne change pas grand chose à l'affaire.
D'après moi, il faut d'abord upgrader le core de Drupal, en respectant bien les étapes.
J'évoque cette procédure avec ses aspects multi-sites dans ce billet :
http://www.lektum.info/2009/05/31/mettre-a-jour-drupal/.
Concernant l'update.php, je pense qu'il faut le lancer, oui, pour les 15 sites car ils n'ont pas forcément tous les mêmes modules activés et les modules influent sur la base. Ce n'est jamais que 15 clics, l'update se fait toute seule de toutes façons (après, y a peut-être mieux à faire, mais perso, je vois pas)

Ensuite seulement, il faut upgrader les modules. Si tu as bien installé tes modules dans /sites/all, la mise à jour des modules ou autre se fera en même temps pour tous les sites. Mais là aussi, il faudra faire une petite update.php pour chaque site, c'est plus prudent.

PS : je l'ai déjà fait ainsi pour une plateforme 4 sites, et ça s'est bien passé.

Yes, merci pour cette réponse plus que réactive ;)
Il me semblait bien que c'était le seul moyen avec le lancement site par site de l'update.php.

Merci encore et bonne journée à toi ;)

Maxime

Bonjour,

J'essaie depuis 48 heures, presque sans dormir, de mettre en place un multisite.

J'ai suivi pas à pas plusieurs tuto, dont le votre en dernier.

Après un premier essai en faisant une petite erreur (j'avais laissé mon site principal dans default), j'ai tout effacé et recommencé une dernière fois, très calmement, avec beaucoup d'application et de concentration... et plouf, encore une fois ça ne fonctionne pas.

A l'étape 3 de l'installation du second site ("Lancer l’installation automatique en se rendant sur l’URL du deuxième site (nom de domaine distinct, sous-domaine ou sous-dossier)."), invariablement, j'ai une erreur 403 Forbidden: You don't have permission to access / on this server. !!!!

Quelqu'un pourrait-il m'aider ?

Merci d'avance

Marc

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Vérifie peut-être la configuration de ton fichier virtual host dans Apache.

Qui doit plus au moins ressembler à ceci.

ServerName demo.tondomaine.com
DocumentRoot /home/web/clients/_drupal
DirectoryIndex index.php
<Directory /home/web/clients/_drupal>
   Options -Indexes
   AllowOverride All
  allow from all
</Directory>

Il me semble que si le AllowOverride All est absent il y a une erreur 403 ou 500 je ne sais plus.

Bon courage.

Salut Caryulayon,

Bien essayé, mais je suis hébergé en mutualisé... donc pas d'accès direct à la config Apache, les autres mutualisé du serveur n'apprécieraient pas forcément :-)

C'était bien une des pistes que j'avais étudiées et m'était rabattu sur ce tuto, car justement on demandait seulement des liens symbolique, ce que je peux faire en ssh.

Merci tout de même

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Hello à tous,

Merci pour vos aides rapides et concises et attention, voilà la réponse: OVH dormait et a mis plusieurs heures à rediriger mon sous-domaine !!!!

Merci encore pour ce tuto, il est presque parfait (pour un total newbe comme moi, certaines phrases doivent être relues plusieurs fois lol)

Merci à tous et bon surf : chevalliers.info (encore totalement vide lol)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Y'as un vieux proverbe qui dit "Le mieux est l'ennemi du bien". Ben je viens de m'y faire avoir.

Ayant fait mes premiers tests sans mettre la langue française, l'installe de chaque nouveau site devait se faire en anglais...

Une idée saugrenue me vint alors: désinstaller et recommencer à zéro pour mettre le français dès le départ... et bien depuis plus rien de marche, je surf d'error 403 en error 500.

Bon là j'efface de nouveau tout, je re télécharge tout tout propre et je recommence, croisons les doigts :)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Bonjour à tous

Je débute sous Drupal et j'ai quelques soucis avec le multisite.
Je souhaite installer Drupal en multisite - pas depuis la racine - mais à partir d'un sous-répertoire de celle-ci (la racine est occupée avec un autre CMS).
La racine pour Drupal est par ex http://www.monsite.fr/test/
En principe, d'après ce tutorial je dois créer un répertoire sites/www.monsite.fr.test.site1 pour le premier site et sites/www.monsite.fr.test.site2 pour le second.

Le problème est que Drupal ne crée que le site utilisant la config par défaut et renvoie une erreur si je cherche à lancer l'installation du 2ème site (page inexistante)
Je ne vois plus trop où est l'erreur à moins qu'il soit impératif d'installer Drupal sur la racine principale / ?

Merci d'avance pour vos réponses

Emmanuel.

Je n'ai pas encore d'expérience personnelle avec ce type de chemin (je pratique surtout le multisite avec des noms de domaines différents), mais il me semble que c'est parce que le premier site doit correspondre au chemin de la racine de l'installation. Donc, pour le premier site, tu dois créer un répertoire /sites/www.monsite.fr.test/ et seulement ensuite pour le deuxième site créer ton répertoire /sites/www.monsite.fr.test.site2/.

Oups on mélange tout là lol :-)

Tu as le libre choix de ton répertoire racine Drupal. Ce peut-être le répertoire racine de ton hébergeur (www) ou un sous répertoire de celui-ci (www/drupal ou www/test...).

En ce qui concerne tes sites, il faut créer pour chacun d'eux, dans le dossier /sites de ton répertoire racine DRUPAL (et pas le répertoire racine de ton hébergeur), un répertoire portant le nom de ton domaine, et pas le chemin du dossier comme tu sembles le faire.

Donc exemple:

/www: répertoire racine principal où tu as un autre cms
/www/drupal: répertoire racine où tu as l'installation Druapl
/www/drupal/sites/monsite_drupal.fr: répertoire pour ton site Drupal principal
/www/drupal/sites/mondeuxiemesite_drpal.fr: répertoire pour ton deuxième site Drupal

Donc maintenant comme pour ton premier site tu as créé un dossier (sites/www.monsite.fr.test.site1) qui ne correspond pas au nom de domaine de ce site, ton premier site a été installé "en mono site".

A propos, évite de mettre les www dans tes noms de répertoire, sans quoi ton site ne sera trouvé que si les gens mettent les www dans leur navigateur.

Mon conseil à ce point: on efface tout et on recommence.

A plus

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Hmmm... je n'ai pas testé mais à mon avis ça ne marchera pas encore ça...
J'explique

si /www est le répertoire racine de ton dossier chez ton hébergeur et contient ton autre CMS

tu peux installer drupal effectivement dans /www/drupal

Si j'ai bien compris tu veux créer une installation multi-site drupal en mode "multi-sous-dossier" et pas multi-domaine : tu veux ensuite pouvoir faire dans ton navigateur

1/ http://www.monsite.fr/mondossier1 et http://www.monsite.fr/mondossier2

2/ et PAS : http://www.monsite1.fr et http://www.monsite2.fr

Il faut donc créer un dossier /www/drupal/sites/mondomain.fr.mondossier1 et /www/drupal/sites/mondomain.fr.mondossier2

Et ensuite ça se corse...

Si on se contente de faire ça... l'url pour accéder à drupal sera dans un navigateur sera :

http://www.mondomain.fr/drupal ... ce qu'on ne veut pas (point 1/) (en plus ça veut dire qu'il faudrait faire http://www.monsite.fr/drupal/mondossier1/install.php ... et qd Drupal va analyser l'url ca ne correspondra pas aux dossiers qu'il va trouver dans son /drupal/sites/* donc ça ne marchera pas)

il faut créer un lien symbolique mondossier1 dans /www pointant vers drupal (et bien sur Apache doit etre configuré pour autoriser le suivi des liens symboliques... si besoin modifier cela via un fichier .htaccess et la directive FollowSymlink)

ensuite si dans son navigateur on fait http://www.mondomain.fr/mondossier1/install.php ... le serveur web ira bien dans Drupal... drupal analysera l'URL... et installera le site dans le bon dossier.

A+

PS : comme je n'ai pas testé ... un petit feedback pour me confirmer que ça fonctionne m'interesse :-)

Bien vu :-)

Effectivement si c'est en sous-dossier plutôt qu'en sous-domaine j'abonde dans le sens de l'ami Petitpopotam.

Et je confirme que ça fonctionne (j'avais testé cela avant de me décider pour une architecture sous-domaine).

A plus

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Bonsoir à tous

Merci pour vos réponses rapides et leur clarté.

Petipopotam, étant en hébergement mutalisé, je n'ai pas accès au fichier de config Apache, je ne peux modifier que quelques paramètres assez généraux...

En effet je souhaite bien créer un accès pour chaque site à un sous répertoire précis, avec le répertoire "drupal" comme racine soit http://www.nomdomaine.fr/drupal/site1 et http://www.nomdomaine.fr/drupal/site2 etc
Actuellement C made simple occupe la racine www. Au total et à terme, il y aurait 3 sites gérés par Drupal. Et donc 3 sous répertoires dans la racine http://www.mondomaine.fr/drupal/...

Le but de la manœuvre est de conserver intact le site sous C made simple et parallèlement travailler sur les sites sous Drupal. N'ayant que 2 nom de domaine disponible .com ou .fr le choix des sous répertoires était plus approprié.

Évidement le plus simple pourrait être de remplacer C made Simple par Drupal du jour au lendemain, hors les rédacteurs sous C made simple n'apprécieraient pas la blague :)

Je ne connais pas non plus assez Drupal, mais pouvoir mettre à jour l'application pour n sites créés présente bien des avantages, incontestable que Drupal est supérieur en multi-site, et aussi en gestion multi-utilisateurs ...

N'ayant pas votre maitrise sur ce CMS :) je suis preneur d'un exemple de fichier .htaccess si possible.

Encore merci à tous pour votre implication & disponibilité.

esec

Hello,

Le fichier .htaccess est configuré automatiquement par Drupal, tu n'as donc pas besoin de gérer cela toi-même.

En ce qui concerne Apache, c'est dans le cas d'un serveur dédié ou d'une installation locale que tu vas aller modifier directement Apache. En mutualisé (ce qui est mon cas), c'est dans les pages d'admin de ton hébergeur qu'il faudra faire pointer tous test sites vers le répertoire racine de ton installe drupal (/www/drupal).

Les seules choses qu'on peut (doit) faire dans .htaccess sont d'ajouter les lignes suivantes:

SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1

La première ligne permet de forcer l'utilisation de PHP5 (la plupart des hébergeurs mettent PHP4 par défaut).
La deuxième ligne met désactive le paramètre REGISTER_GLOBALS. Nécessaire à la compatibilité avec Drupal.
La troisième ligne, optionnelle, sécurise quelque peu ton site en empêchant le "rétro enginering".

En ce qui concerne les liens symboliques, tu peux le faire en connectant une console en ssh à la racine de ton installation Drupal, puis en tapant pour chacun de tes sites : "ln -s . mon_site.com.son_repertoire"

Enfin, moi aussi j'ai que deux domaines, mais mon hébergeur me permet de gérer des sous-domaines (soudesecoles.chelieu.org, cantine.chelieu.org, ...). Tu n'as donc pas besoin de plus d'un site pour mettre en place une archi avec des sous-domaines.

N'hésite pas si c'est pas claire

A plus

Marc

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Bonjour à tous,
faut il laisser ou supprimer le dossier default?? pour faire une installation multisites en sous dossiers?
(en local on ne peut faire qu'en sous dossiers?)
merci de vos réponses

Salut cac,

Le dossier default est indispensable à Drupal, IL NE FAUT PAS LE SUPPRIMER :-)

En local, à ma connaissance, tu peux aussi bien le faire en multidomaine qu'en sous-dossier, ton serveur Web local pourra gérer les deux.

La grande différence entre ces deux approches:

Dans l'organisation des fichiers Drupal cependant, dans les deux cas, tu auras un dossier spécifique à chacun de tes sites dans le dossier /sites.

C'est la manière de nommer ces dossiers spécifiques qui sera différente:

  • En sous-dossier, pour l'exemple ci-dessus: /sites/example.com.drupal.premier_site
  • En sous-domaine, pour l'exemple ci-dessus: /sites/premier_site.example.com

Courage

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Merci beaucoup de ta réponse, je vais réessayer !
Mais dans mes précédents tests j'ai du faire un erreur car je n'arrivais pas à installer les autres sites. Par exemple: je suis sous wamp, j'extraie drupal6 et je le mets dans www de wamp, je le renomme en drupal. Tout de suite je fais un nouveau dossier dans "sites" avec le nom de mon site (site1 par exemple), je copie à l'interieur le fichier settings qui est dans default et là impossible de lancer l'installation automatique. L'installation ne fonctionne que sur localhost/drupal, si je tape localhost/drupal/site1 il m'affiche uniquement le contenu du répertoire à savoir le fichier settings.php que j'ai copié de default.
Alors, ai-je loupé une étape? est ce que je dois faire autrement?

Hello,

Oui, petite erreur classique :-)

Dans ton dossier (site1 par exemple), il te faut deux fichiers: default.settings.php et settings.php.

Le deuxième est une copie renommée du premier :-)

J'ai modifié la wiki car beaucoup de gens se son accroché là-dessus, y compris moi d'ailleurs lol

Courage

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Hmmm... je ne suis pas d'accord...
La présence ou non du fichier default.settings.php dans le dossier sites/monsite n'est pas responsable du probleme rencontré...

Le problème c'est que si dans son navigateur il fait http://localhost/drupal/site1 ... le navigateur va dans le dossier /www/drupal/site1 .. et là il n'y a rien d'autre que settings.php ...

Pour que ça fonctionne... il faut que lorsqu'on fait http://localhost/drupal/site1 ... le serveur lance le script index.php de drupal

Ensuite le fichier index.php analysera l'URL et comprendra qu'il doit charger le bon site en fonction des noms des répertoires dans sites/xxxx

Conclusion pour que ça fonctionne, il n'y a pas besoin d'un default.settings.php... mais par contre il est indispensable de faire un lien virtuel dans le dossier drupal qui va s'appeller site1 et qui pointera vers drupal :

ln -s . site1

Cordialement

Ben d'accord ou pas, quand moi j'ai eu ce problème, c'est comme ça que je l'ai réglé.

Et si tu google un peu, tu verras que je ne suis de loin pas le seul...

Mieux vaut une solution qui ne te semble pas logique mais qui fonctionne, que de répéter de faire le symlink, ce que l'ami a déjà fait :-)

A plus

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Bonsoir à tous

Enfin ça fonctionne :)
J'ai finalement réussi l'installation avec les sous-domaines plutôt que les sous-répertoires.

Pour rappel , le but était d'installer Drupal dans un sous répertoire et de gérer 3 sites.

Voici la méthode dans l'ordre :

1 Création de 2 sous-domaines sur la console de l'hébergeur (Nuxit) site2.mondomaine.fr et site3.mondomaine.fr . Il est très important de préciser qu'ils pointent l'un comme l'autre vers la racine drupal choisie : www/drupal.

Attente de 10 mn pour propagation sur les DNS ...pas mal :)

2 téléchargement du pack de traduction Français, décompression dans www/drupal

3 Création des sous répertoires dans www/drupal/sites soit:

REP www/drupal/sites/mondomaine.fr --> URL HTTP://www.mondomaine.fr/drupal
www/drupal/sites/site2.mondomaine.fr --> HTTP://site2.mondomaine.fr
www/drupal/sites/site3.mondomaine.fr --> HTTP://site3.mondomaine.fr

4 Copie dans chacun de ces sous répertoires de default.setting.php et également du même fichier renommé en settings.php

5 permissions en 755, récursif, avec filezilla sur /sites

7 Install en Français sur HTTP://www.mondomaine/drupal

8 Install en Français sur HTTP://site2.mondomaine.fr, sélection de l'option de préfixe "site2_" pour ne pas écraser les tables connectées au site principal.

9 Install en Anglais sur HTTP://site3.mondomaine.fr, sélection de l'option de préfixe "site3_" pour ne pas écraser les tables connectées au site principal et secondaire.

Et voilà, 3 sites , le principal accessible par http://www.mondomaine/drupal, les deux autres par les sous domaines HTTP://site2.mondomaine.fr et HTTP://site3.mondomaine.fr.

Au final, la racine WWW reste accessible avec l'autre CMS... il ne reste plus qu'a migrer tranquillement sur DRUPAL. J'ai encore pas mal de boulot, mais ce CMS m'impressionne déjà !

Merci encore pour vos précieux conseils.

esec

Bonjour,

J'aimerai bien te donner un feedback sur un problème qui semble être du même ordre. Je dois dire que je suis assez "end-user". Il s'agit d'un hébergement mutualisé chez OVH.

J'ai installé Drupal dans un répertoire /drupal

J'ai un premier domaine (www.domaine1.com) qui pointe sur /www
J'ai un deuxieme domaine (www.domaine2.com) qui pointe vers /www/drupal

J'ai donc crée un répertoire /sites/domaine1.com.drupal
et un répertoire /sites/domaine2.com

Dans les 2, j'ai copié le ficher default.settings.php et renommé en settings.php. Dans /default, je n'ai que default.settings.php (et donc pas de settings.php)

J'entre l'url "www.domaine2.com", j'ai le script d'install qui s'exécute, je choisis la langue et sur l'étape suivante j'obtiens :

Requirements problem

The following error must be resolved before you can continue the installation process:
The Drupal installer requires that you create a settings file as part of the installation process.

Copy the ./sites/default/default.settings.php file to ./sites/default/settings.php.

Change file permissions so that it is writable by the web server. If you are unsure how to grant file permissions, please consult the on-line handbook.

More details about installing Drupal are available in INSTALL.txt.

Please check the error messages and try again.

================================================

Je ne comprends vraiment pas pourquoi Drupal essaie de trouver le fichier settings.php par defaut

Celui-ci etait nécessaire malgré la présence du fichier dans le sous répertoire ?

Merci infiniment pour toute aide, cela fait 6 heures que je suis sur le problème et cela dépasse de loin mes compétences.

Ce n'est pas normal... si Drupal affiche ce message c'est qu'il "entre" dans le dossier sites/default au lien d'entrer dans sites/domaine2.com

Si vous créer une page A.html avec juste "OK pour A" a l'intérieur...
et une page B.html avec "OK pour B" à l'intérieur...
que vous mettez A dans /www et B dans /www/drupal

Puis que vous faites avec votre navigateur

http://www.domaine1.com/A.html
et
http://www.domaine2.com/B.html

Déjà ça est-ce que ça marche ?

OK. Déjà c'est un bon début :)

Un truc que je ne comprends pas bien dans votre exposé...
Vous indiquez que Drupal est installé dans /drupal... et plus loin vous indiquez que domaine2.com pointe vers /www/drupal ... j'imagine qu'en fait drupal est donc installé dans /www/drupal ? et pas dans /drupal ? ou je me trompe ?

Je vais supposer que j'ai raison sur ce point et continuer pour essayer de résoudre ce problème...

Donc qd vous faites http://www.domaine2.com/install.php ... comme votre site domaine2.com pointe vers /www/drupal ca devrait lancer le script /www/drupal/install.php et drupal va analyser l'url et comprendre qu'il doit choisir /www/drupal/sites/domaine2.com/settings.php

Et quand vous faites http://www.domaine1.com/drupal/install.php ... comme votre site domaine1.com pointe vers /www ... ca devrait lancer le script /www/drupal/install.php également... et en analysant l'url drupal devrait en conclure qu'il doit utiliser /www/drupal/sites/domaine1.com.drupal/settings.php

Hmm et ca semble exactement ce que vous avez configuré... j'avoue que je ne comprends pas bien ce qui peut se passer...

Pire, j'ai trouvé la fonction qui recherche le fameux settings.php : includes/bootstrap.inc

Il y a une boucle for dans laquelle j'ai affiché le contenu de getcwd()."/"."$confdir/$dir/settings.php"

Ceci affiche bien les bons chemins. J'ai de nouveau vérifié les droits des fichiers / repertoires rien de suspect, bref alors que le chemin est bon, ce bout de code ne semble pas fonctionner :

      if (file_exists("$confdir/$dir/settings.php") || (!$require_settings && file_exists("$confdir/$dir"))) {
        $conf = "$confdir/$dir";
        return $conf;
      }

Et si vous modifiez cela en écrivant

$my_string_test = "$confdir/$dir/settings.php";
$my_test = file_exists($my_string_test);
$my_test2 = file_exists("$confdir/$dir");
echo "string=$my_string_test test=$my_test require=$require_settings test2=$my_test2";
if (($my_test) || (!$require_settings && $my_test2)) {
...

Ca affiche quoi exactement ?

Je suis pénible je sais... mais je préfère faire un truc en comprenant ce qui se passe plutot que copier un fichier dans un dossier et que par miracle ça fonctionne... et je persiste dans son cas particulier ajouter un default.settings.php ne changera rien...

Et je doute que son alias ou son symlink soit configuré comme il faut... si c'etait le cas le serveur web executerait le script index.php dans son dossier drupal et au pire il aurait une erreur PHP ou un message drupal... si le serveur web lui affiche le contenu du dossier /www/drupal/site1 c'est que ce n'est pas le cas...

Enfin lorsque ce point sera résolu et que le serveur web executera bien le fichier /www/drupal/index.php via l'url http://www/drupal/site1 ... ca ne suffira probablement pas...

La regle d'analyse de l'URL par Drupal c'est :

The configuration directory will be discovered by stripping the website's hostname from left to right and pathname from right to left. The first configuration file found will be used and any others will be ignored. If no other configuration file is found then the default configuration file at 'sites/default' will be used.

Donc pour une URL du type http://www.drupal.org/mysite/test/

Drupal va chercher successivement dans

  1. sites/www.drupal.org.mysite.test
  2. sites/drupal.org.mysite.test
  3. sites/org.mysite.test
  4. sites/www.drupal.org.mysite
  5. sites/drupal.org.mysite
  6. sites/org.mysite
  7. sites/www.drupal.org
  8. sites/drupal.org
  9. sites/org
  10. sites/default

Et pour notre cas particulier http://localhost/drupal/site1 ca va être uniquement :

1/ sites/locahost.drupal.site1
2/ sites/localhost.drupal
3/ sites/localhost
4/ sites/default

il ne trouvera pas le dossier sites/site1 et configurera donc le site dans sites/default

Donc pour que ca marche... il faut changer le nom du dossier sites/site1 ... ou modifier la configuration du siteweb pour que le DocumentRoot pointe directement sur le dossier /www/drupal de maniere à autoriser l'url http://localhost/site1 et ca fonctionnera avec un dossier sites/localhost.site1 contenant uniquement settings.php.

Mais je veux bien qu'on me prouve le contraire ...

Bonjour vous deux!
Pas pu tester hier, je vais essayer vos deux solutions et vous faire un retour, en ce qui concerne mon cas précis biensur
En tout cas merci de votre aide et de votre réactivité

Content que ça ai fonctionné et bien du courage pour ta migration :-)

A plus

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

Bonjour à tous,
Je suis entrain d'essayer de créer un multisite avec votre méthode via la dernière version de acquia Drupal.

J'ai fait plusieur essais, aucun de concluant.

Je souhaiterais avoir 3 sites:
1) http://www.monsite.fr/accueil
2) http://www.monsite.fr/produits
3) http://www.monsite.fr/technologies

Donc j'ai suivis la méthode:

1) Mettre les fichiers nécessaire à l'installation dans html
2) Créer les dossiers pour mes 3 sites dans /sites, ce qui donne ici:
* /sites/monsite.fr.accueil.
* /sites/monsite.fr.produits.
* /sites/monsite.fr.technologies.

3) Copier le contenu de Default dans ces répertoires et ne pas supprimer Default
4) Lancer l'installation sur http://www.monsite.fr/accueil
Premier soucis comment savoir si il lance bien l'installation dans accueil ? Parceque moi il me redirige sur une url de type installation mono site.

5) Lancer l'installation sur http://www.monsite.fr/produits

Gros souci: j'ai une belle page de Drupal m'indiquant que la page demandée n'existe pas. Bref il ne reconnait pas que j'essaye d'installer plusieurs sites...

Est ce que vous avez une idée de mon erreur?

Cordialement,
Micky.

PS: Je suis débutant sous Drupal, mais je n'ai pas eu de problème pour une installation normale.

Bonjour

4) Lancer l'installation sur http://www.monsite.fr/accueil
Premier soucis comment savoir si il lance bien l'installation dans
accueil ? Parceque moi il me redirige sur une url de type installation
mono site.

Hmm... c'est quoi exactement l'url ?

5) Lancer l'installation sur http://www.monsite.fr/produits
Gros souci: j'ai une belle page de Drupal m'indiquant que la page
demandée n'existe pas. Bref il ne reconnait pas que j'essaye
d'installer plusieurs sites...

Pas normal. Vous avez créé le lien symbolique via la commande ln -s .
produits dans le dossier de drupal comme indiqué dans l'article ?

Pas normal. Vous avez créé le lien symbolique via la commande ln -s .

Oui je suis d'accord, la raison de mon problème doit venir de la. Pour faire cette commande il faut avoir obligatoirement un accès ssh ?

Bonjour J'ai suivi la procédure indiquée dans cet article. J'ai bien compris le principe, seulement j'ai un problème sur son implémentation sous Gandi. j'ai créé un nom de domaine mydomain.com. J'ai un serveur serveurcsl dans lequel j'ai créé deux vituals hosts : mydomain.com et one.mydomain.com. Donc lorsque je me connecte sur monserveur en ftp, je vois deux sous répertoire au nom des deux VH que je viens de citer. Ensuite, j'ai installé drupal sur ./mydomain.com/htdocs. Et j'ai créé deux sites :
/bonangle-conseil.com/htdocs/sites/mydomain.com
/bonangle-conseil.com/htdocs/sites/one.mydomain.com
Voila où j'en suis, mais je pense que fais quelque chose qui ne va pas car bien sûr lorsque je vais sur http://one.mydomain.com, bien il n'y a rien. Où est-ce que je me plante lamentablement svp ? je ne maitrise pas bien toutes ces histoire de domaines et virtual host. Merci pour votre aide, je suis bloqué car je n'ai pas envie de me lancer dans des procédures erronées.
Frédéric

Bonjour,
Est-il possible d'installer un deuxième site si le premier est dans defaut ?
J'ai peur de tout désintaller/réinstaller (car la première fois que j'ai copié drupal il était dit dans la doc qu'il ne fallait mettre que le contenu du dossier, ce qui n'est donc pas vrai si je comprends ce que je lis ici, conséquence, c'est le merdier à la racine du site, et j'ai écrasé des fichiers important ce qui m'a bloqué mon site, jusqu'à ce que mon administrateur me répare la chose)

Par ailleurs, je ne comprends pas ce qu'il faut faire pour "ajouter un lien symbolique dans le dossier drupal avec le nom de votre sous-dossier : cd /usr/share/drupal6; ln -s . sousdossier " : où doit-on écrire ça ?

Désolé de ces questions de béotiens (mais c'est sensé être simple, et c'est pas vraiment le cas)

désoler mais je ne comprends toujours pas ce qu'il faut faire
je comprends quand même que c'est sur le serveur qu'il faut mettre ça.
Mais je ne sais pas comment on met ce lien symbolique dans le dossier
cette ligne de code se met dans quel fichier ?

Bonjour,

Comme namby, je ne parviens pas à créer des site en "sous répertoire", sous windows, la commande ln ne fonctionne pas. J'ai essayé avec cygdrive (ou je sais plus trop comment ça s'appelle), qui permet de reconnaître les commandes unix sous windows mais je ne peux toujours pas accéder au site en faisant "adresse_ip:port/nomsite", drupal me dit que la page est introuvable.

J'ai réussi à installer un multisite avec plusieurs domaines mais je préfère les sous répertoires, comme ça, j'aurais (en gros) drupal/site1, drupal/site2...

Merci par avance pour vos réponse.

La notion de lien symbolique n'existe pas sous Windows... donc même avec cygwin vous n'y arriverez pas comme ça. A la limite il faudrait tester en créant un alias dans votre fichier de configuration web Apache (httpd.conf) : Alias /sous-dossier /le/chemin/vers/drupal

Mais de mémoire ça ne suffisait pas lorsque j'avais essayé (avec une version un peu plus ancienne de Drupal... peut-être que ça fonctionnerait maintenant).

Sinon... peut-être est-ce le moment de passer à Linux ;-)

Je vous remercie pour votre réponse.

Si ça ne tenait qu'à moi, je passerais volontiers sur Linux mais c'est pour mon entreprise, tout est sur Windows depuis longtemps et la migration prendrait trop de temps et les chefs ne veulent pas "prendre le risque"...

J'ai essayé d'ajouter un alias mais ça me redirige automatiquement vers le site default. J'ai essayé de donné plusieurs noms à mon sous dossier "sitetest", "default.sitetest", "sitetest.com" (ça marche pour plusieurs domaines) et j'en passe mais sans succès...

Donc, il est impossible d'avoir du multisite en sous répertoires avec Windows ?

S'il y a "allergie" à Linux vous pouvez essayer de proposer du Linux "encapsulé" dans une VM sous Windows avec VMware Server par exemple (en plus c'est gratuit) ? ;-)

Sinon... pour le multi-site en sous-répertoire : je n'ai pas réussi à faire fonctionner sous Linux en me passant des liens symboliques, donc je ne sais pas si c'est effectivement possible de faire cela sous Windows...

Vous ne pouvez pas faire du multi-site en vous basant sur le hostname plutot c'est nettement plus simple ?

monsite1.mondomaine.com
monsite2.mondomaine.com
etc

Quitte éventuellement à ajouter des redirections du type www.mondomaine.com/monsite1 => monsite1.mondomaine.com

Autre solution... en exploitation/maintenance un peu pénible mais au moins ça marchera :
Vous faites du multi-site en sous-répertoire... mais avec une installation Drupal dédiée pour chaque sous-dossier...

Bonjour,

Merci pour votre aide Petipopotam.

Je proposerais la solution basé sur le nom de domaine puis j'ajouterais des Alias dans apache (on a choisi Drupal justement pour éviter de faire plusieurs installations pour chaque site ^^)

Merci encore.

Bonjour,

J'ai actuellement plusieurs sites drupal tous hébergés sur un serveur mutualisé. Chacun de ces sites possède sa base de donnée et son nom de domaine (.com, .org et .fr).

Pour l'instant chacun de ces site est en mono, donc à chaque mise jour d'un module ou de Drupal je dois mettre chacun d'eux à jour. C'est galère.

Je voudrais tous les migrer vers un nouvel hébergeur mutualisé (http://www.justhost.com/) qui donne un accès cpanel.

J'ai tout essayé les solutions proposées, ce n'est pas la première fois que je m'essaye à une installation muti-site.

Je suis prêt à payer pour que quelqu'un m'aide à faire cette migration en multi-sites (si facture).

D'avance merci,

Je viens de créer un site : http://kinesthesique.org

Je créé dans sites un dossier : test dans lequel que met le fichier settings.php

Je fais http://kinesthesique.org/test/ et voit le résultat toi-même :

Not Found

The requested URL /test/ was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

En tout cas merci de votre volonté à vouloir m'aider. J'ai lu les explications en fr et en en j'ai essayé des heures et des heures en faisant varier tout les paramètres dans tout les sens sans succès (voit le premier com de ce fil qui est de moi).

Merci en tout cas.

Comment faire une installation multi-sites de Drupal avec Cpanel

(au format pdf avec les captures d'écran ici :
http://apprendre.org/FICHIERS/Installation%20multisites%20Drupal%20et%20...)

Préambule : j’ai posté le premier commentaire sur ce fil en avril 2009 et à l’époque j’avais échoué. J’ai retenté ma chance la semaine dernière et là l’aide à fusée. Finalement j’ai réussi grâce à un certain Petipopotam qui a passé des heures à m’aider via MSN et en m’aidant à faire la manip pas à pas jusqu’à ce que ça fonctionne. Je voudrais le remercier pour sa générosité. Sur le site je disais que j’étais prés à payer quelqu’un pour m’aider et malgré les heures passées, il a refusé ma proposition. Alors merci à Petipopotam et merci aux autres aussi qui ont éssayé de m’aider, en particulier emerya. Merci à la communauté Drupal.... Et maintenant place à ce que j’ai appris :

Pour pouvoir faire une installation multi-sites de Drupal avec Cpanel, il faut utiliser la fonction « Domaines compagnons ». La configuration se fait en 4 temps :
1)Créer un domaine compagnon
2)Créer le bon dossier dans son installation Drupal
3)Configurer ses DNS
4)Lancer l’installation de Drupal

1) Configurer un domaine compagnon
Allez dans « Domaines compagnon » de Cpanel :
Il y a 4 champs à remplir :
1.Nouveau nom de domaine :
Introduisez le nom de votre nom de domaine, par exemple « supersite.com ».

2.Nom d’utilisateur FTP/du sous-domaine :
Choisissez un nom d’utilisateur, le mieux est de mettre le même nom que le nom de votre nom de domaine de telle sorte qu’en cas de besoin vous savez « qui » gère quel site ; c’est d’ailleurs la proposition que vous fait automatiquement Cpanel. Dans le cas présent donc mettre « supersite »

3.Répertoire principal des documents
C’est là la phase délicate la plus importante. Par défaut Cpanel propose « public_html/supersite.com », ors ce n’est pas ce qu’il faut mettre s’il on veut que Drupal gère le multi-sites. Il faut plus simplement mettre « public_html ».

4.Mot de passe (deux fois)
Je ne peux que réitérer le bon conseil de mélanger majuscules, minuscules, chiffres et caractères spéciaux. Prenez exemple sur la fonction Password Generator disponible. Voici un bon exemple de mot de passe : #^zA{&HJW@HO

2) Créer le bon dossier dans son installation Drupal
Ensuite dans le dossier « sites » de Drupal, créez un sous-dossier nommé « supersite.com » et glissez-y le fichier « defaut.settings.php » que vous trouverez dans /sites/defaut puis renommer ce fichier settings.php.

3) Configurer ses DNS
Pour que Drupal puisse lancer son installation à partir du bon nom de domaine il faut que se soit votre hébergeur/Cpanel qui gère vos DNS. Pour cela, si votre nom de domaine est chez un autre registrar il faut que vous indiquiez les DNS de votre hébergeur qui vous fourni Cpanel.

4) Lancer l’installation de Drupal
Pour ce faire tapez tout simplement l’adresse de votre site internet dans votre navigateur favori http://supersite.com. Il faudra peut-être attendre quelques heures que les DNS se propagent entre la phase 3 et 4.

Bonjour et merci pour ce tuto très instructif

je dispose d'un site drupal déjà existant, et je l'ai installé sans utiliser cette méthode puisqu'à l'époque je ne pensais pas en faire d'autre.

aujourd'hui j'ai besoin de créer un nouveau site et je voudrais bénéficier de l'install du précédent pour profiter des différentes configurations et modules appliqués.

=> est ce possible de rajouter d'autres sites sur une install existante?
=> en créeant des sous dossier et relançant install.php, que va t'il se passer?

si d'autres ont déjà testé, je veux bien profiter de leur expérience.

merci

J'ai trouvé une façon de faire (en localhost):

  1. prérequis:

- disposer d'une install de drupal accessible à l'adresse localhost/drupal
- vouloir créer un nouveau site accessible à l'adresse localhost/lula

  1. Créer un lien symbolique:

- portant le nom du nouveau site (dans notre exemple: lula)
- pointant vers l'install drupal existante

ainsi dans votre dossier local /var/www vous aurez un dossier drupal et un lien nommé lula pointant vers drupal

  1. Créer une copie du dossier drupal/site/default et la renommer en "localhost.lula"

  2. Créer une nouvelle base de données destinée à recevoir l'installation du site lula, que l'on nommera lula

  3. éditer le fichier settings.php contenu dans le dossier drupal/site/localhost.lula et indiquer l'adresse de la base de données: $db_url = 'mysqli://usr:pw@localhost/lula'; (remplacer "drupal" si votre bdd contenant l'autre install de drupal se nomme "drupal" par "lula")

  4. installer le nouveau site lula avec localhost/lula/install.php

je n'ai pas testé la mise en ligne de ce site, mais il se peut que cela pose problème à cause des noms de dossier (quelqu'un a peut être testé?)

Bonjour,
j'ai un problème de référencement Yahoo pout un multi-sites.
Je sais bien que Yahoo devient anecdotique (1%), mais quelqu'un a-til déjà réussi cet exercice?
J'ai mis les 2 fichiers html dans le root du site, à la même hauteur que index.php ou que le répertoire sites. Est-ce correct?
A noter que ça fonctionne bien avec Google, mais Google ne génère qu'un fichier de validation par compte alors que Yahoo en renvoie deux, pour les 2 sites.

Indépendante, mandats Drupal et PHP.
Migration Drupal 6 / Drupal 7

Tuto OK..
Testé et approuvé !

En revanche quand est-il pour la migration d'un Drupal multisite ??
J'ai réadapté les noms des sous dossiers de sites en fonction des URL.
Au niveau administration ==> adapté le chemin d'upload.
Au niveau BDD ==> certains liens en dur dans une table (un MYSQL REPLACE..) modifiés.

Le site fonctionne mais une recherche dans toutes les tables de la BDD ressort quelques occurrences de l'ancien nom du sous dossier de "sites" !!

What's the fuck ??
(j'ai tenté le même remplacement partout dans la base et là en administration j'ai un affichage de NOTICE UNSERIALIZE par PHP... Un truc m'échappe..
Quel est le pb ?

Oula...
Il faut éviter de manipuler la base MySQL à la main...

L'erreur Notice Unserialize vient de la tentative de remplacement :

Drupal stocke les informations en base en sérialisant ses objets/array pour pouvoir les enregistrer dans un simple varchar MySQL...

Et la fonction de serialisation de PHP stocke la longueur de la chaine en même temps que la chaine elle même.

Si vous regardez dans votre varchar vous allez voir un truc du genre ... 6,"blabla"...
6 c'est la longueur de blabla

Donc en modifiant la chaine sans modifier la longueur, quand Drupal essaie de dé-sérialiser son objet... ça plante...

La façon de faire la moins dangereuse, c'est dans le backoffice d'administration d'aller dans Site Building > Themes puis de faire un "reset to default" et ensuite réappliquer le theme.

Puis aller dans Site configuration > File system et "revalider" le file system path

Vider le cache : Site configuration > Performance : clear cached data

Et enfin lancer le script update.php ...

En principe après tout ça la migration fonctionne...

Ma "méthode" est assez empirique, donc si vous avez mieux n'hésitez pas à completer !

Donc j'ai réglé ce problème :

j'ai exporté ma base et je retouche directement le script .sql avec le puissant VI:
je substitue toutes occurrences faisant référence à l'ancien ServerName par le nouveau ..
:%s/ancien.ServerName/nouveau.ServerName/g

Je re-claque la base et là ... ça fonctionne sans NOTICE , sans WARNING sans problème....!
mysql la_base < le_dump.sql -p

http://tssi-help.dnsalias.com

l'import de la BDD du site distant sur le local empêche l'affichage des images, par exemple, car leur chemin est écrit en dur dans la BDD et mentionne le nom de domaine distant.

Il est possible que j'ai raté un épisode pour faire à la fois du local et du distant.
Merci de me dire comment corriger efficacement les pointages en dur dans la BDD.

PS : multi-site en Drupal 7.7

PS 2 : (D6) Site Building > Themes = (D7) admin/appearance mais le bouton de réinitialisation a disparu.

Bonjour,

Alors voilà je vais essayer de m’expliquer du mieux que je peux.. J'ai l'impression d'avoir sauté une ligne, je ne sais pas mais je n'ai pas bien compris..

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 ?

Bonjour à tous

Je débute aussi sous Drupal (6.19) et j’ai quelques soucis avec le multisite .J'ai un hébergement mutualisé chez OVH j'ai suivi à la lettre les différentes recommandations. Le domaine principal c'est installé normalement, mais le second domaine m'affiche une erreur 403. Les droits du fichier settings.php sont encore en mode d'écriture et lecture
Sinon dans la rubrique gestion des multi-domaines j'ai fait pointer le second domaine vers /www/sites/.L'arborescence du domaine2 est:/www/sites/domaine2/default.settings.php
+settings.php

Merci d’avance pour vos réponses.

Salut, je ne sais pas si OVH est différent mais tu trouvera tout en détail dans ce post :

http://drupalfr.org/forum/support/developpement/24773-multi-site

Le nom de tes repertoire doivent porter le nom de l'url

et dans mon cas je n'ai pas mis de setting.php dans le sites/default juste dans mes sous-domaine.

Essaie déjà avec le post et si ca va toujours pas, j'essaierai de t'aider du mieux que je peux...

Bonjour,

Merci pour votre rapide réponse. Je vais lire le Post et essayer de voir mes erreurs.
Sinon j'avais bien créé deux répertoires avec le nom du domaine correspondant. Enfin pour le site principal j'ai laissé à Drupal la gestion du préfixe pour la base de données.

Résolu:

Je viens de tout réinstaller cette fois je n'ai pas créé de dossier particulier pour mon domaine principal j'ai simplement dupliqué le fichier defaut.settings.php et renommé en "settings.php" se trouvant dans le répertoire d'installation "/default" , et ensuite j'ai lancé l'installation dans le navigateur.

Après dans /sites/ là j'ai créé un dossier du nom de mon second domaine sans les "www" devant et j'y ai placé un fichier settings.php. J'ai pointé pour terminer sur /www/ dans le gestionnaire des multi-domaines d'OVH. Et c'est là ou il faut patienter plusieurs minutes avant que cela deviennent effectif. (Pendant cette seconde installation dans option j'ai créé un préfixe à la base de données).

Bonjour à tous,

J'essaye aujourd'hui d'installer sur mon serveur distant le module 'french translation' fr-6.x-1.0 qui comprend trois dossiers (module, profiles et themes). J'utilise filezilla comme client FTP mais celui-ci me propose de remplacer les dossiers au lieu de fusionner, dans le doute j'ai annuler les transferts. J'ai fait des rechercher sur le Web mais je n'y ai rien trouver...
Ce matin j'ai aussi galéré un bon moment pour placer le module 'administration menu' avant de trouver sur une video qu'il fallait décompresser deux fois les modules télécharger au format 'tar'.

Merci encore d'avance pour votre aide.

Pour le module en francais tu peux les remplacer.
Ah oui parfois les modules sont téléchargeables 2 fois il faut que tu aies le dossier mais lorsque c'est fait tu as le choix de le mettre soit dans /sites/all ou là le module existe mais tu ne peux que l'installer que sur chacun des sites
ou dans /sites/default et là tu l'installera sur tout les multi-sites.

plateforme multi-sites sous Drupal et caractères spéciaux

Nous avons deux installations de DRUPAL

  • - une en multi-sites qui fonctionne parfaitement : sites/site1, sites/sites2, ...
  • - une mono-site : æxium.com (! au caractère spécial): sites/default/settings.php

    Je souhaite ne garder qu'une seule installation de DRUPAL et donc faire basculer le site æxium.com avec les autres en multisites.
    Mais après avoir copié les fichiers (settings.php, Files, pictures ...) dans un dossier sites/æxium.com/... le site ne fonctionne plus.
    Or nous avons fait exactement la même manipulation avec d'autres sites avec succes.

    Ce qui me fait dire que Drupal ne prend pas en charge le caractère spécial "æ" (alt + 0230)

    Savez vous si il est possible de forcer Drupal à lire le dossier sites/æxium.com en modifiant settings.php ou .htaccess

    ! je suis en hebergement mutualisé. Je ne peu pas intervenir sur Apache

  • Cédric Dromzée www.cedric.dromzee.fr

    bonjour,

    Je suis sur un projet de création de 3 sites que le client veut que ces trois sites seront gérés par un seul BO(Back Office).

    Ce plateforme multi-sites permettra -il de mettre en oeuvre la gestion de plusieurs sites par un seul BO?

    Merci pour votre aide

    Bonjour,
    Une question qui je pense revient souvent.
    Pour les idiots (comme moi) qui on mis en place une installation drupal en single, (site placé dans le dossier default), existe-t-il une procédure pour basculer en multisite ?
    Par avance merci.

    Bonjour,

    En gros ce qu'il faut faire :

    Dans le répertoire sites, créer un répertoire portant le nom du domaine,
    mettre dans ce dossier les fichiers :
    settings.php (celui qui se trouve dans default)
    default.setting.php (celui qui est fourni dans au téléchargement dans le dossier sites/default.
    Éventuellement copier les dossiers sous default, à l'exception des dossiers module.

    En principe, ça devrait être tout.

    Le plus simple est de faire cette manip et de tester en renommant le settings.php de default en un autre nom, cela permet de tester et de revenir en arrière en cas d'erreur !

    Bonjour,

    J'ai posté dans http://drupalfr.org/forum/support/support-general/26806-installation-fatale sur une erreur fatal rencontrée lors de l'installation de drupal 7 en multi-sites.

    Aussi, je replace la question dans ce topic oùbeaucoup de problèmes et solutions sont données.

    J'ai configuré un premier site sous Drupal 7.9 (maj 7.10) qui fonctionne parfaitement.
    Mais lors de la configuration du deuxième site, le message suivant s'affiche :
    Fatal error: Call to undefined function field_attach_load()in /homez.378/XXXXXX/www/includes/entity.inc on line 320
    ! les XXXXXX c-dessus correspondent au nom de domaine

    Pour info
    - hebergement mutualisé chez OVH
    - DRUPAL 7.10 en multi-sites

    Actions réalisées :
    - réinstallation de Drupal 7 (maj de 7.9 vers 7.10)
    - effacer et recreer la base de données
    - recreation du repertoire du site et du setting
    - modification du htaccess est modifié avec :
    SetEnv REGISTER_GLOBALS 0
    SetEnv PHP_VER 5

    Rq : RewriteEngine On est activé dans le fichier original de Drupal

    • activation de l'update dans le fichier settings.php

    Résultat :
    Rien a faire, j'ai toujours la même erreur

    Solution

    En fait j'ai recommencé le processus d'installation en utilisant Firefox et là miracle ! ça fonctionne !

    Cédric Dromzée www.cedric.dromzee.fr

    Bonjour,

    Tout d'abord je tenais à vous remercier pour les explications claires et précises sur ce post ! Beaucoup de sites parlent du multisite drupal mais peu vont droit au but.

    Je suis en train d'installer un multisite pour Drupal 7.12 sur OVH.
    J'aurai donc besoin de deux sites pour mon client.
    Monsite1.be et Monsite2.be.

    J'ai donc un hébergement mutualisé, 1 grande DB et 2 noms de dommaine (Monsite1.be (principal) et Monsite2.be. Juste l'install et les modules seront en commun.

    J'ai uploadé sur le ftp dans www/ la version de drupal 7.12 et j'ai créé un dossier dans sites/ nommé Monsite1.be.

    J'ai tapé l'URL Monsite1.be qui me propose d'installer Drupal et qui me l'installe avec succès. :-) Et si je vais voir dans mon dossier sites/monsite1.be il m'a bien créé un fichier settings.php avec les bonnes infos db mdp ...

    Cool déjà un de bien installer !

    Pour l'installation de Monsite2.be, qui est bien un nom de domaine relié au même hébergement (donc mêmes DNS que Monsite1.be) je veux que Monsite2.be accède à www/sites/Monsite2.be.

    Pour cela j'ai créé un Multi-domaine dans "Multi-domaine" dans mon hébergement et j'ai donc créé comme Multi-domaine -> Monsite2.be et comme dossier cible / -> www/sites/Monsite2.be. Il me disait qu'il fallait 24h +/- pour créer le multi-domaine.

    J'ai aussi dupliqué le dossier sites/default et je l'ai renommé sites/Monsite2.be et les permissions sont les mêmes que celui par défault.

    Si j'accède maintenant à l'URL Monsite2.be il me met une page 403 Forbidden - you don't have permission to access / on this server.

    Je ne vois pas trop ce que je dois faire maintenant pour accéder à l'install de Monsite2.be.

    Je me pose aussi des questions sur le fichier exemple.sites.php ? Que doit-on faire avec cela? Faut-il y toucher lors d'une installation multisite ?

    Quelqu'un pourrait-il m'aider ?
    Ou me conseiller sur ce que je dois changer ?
    Toutes suggestions sont les bienvenues pour finaliser l'installation et répondre à pas mal de demande sur le multisite et OVH.

    Merci d'avance !

    ++++ :-) ++++

    Bonjour,

    Vous faites pointer votre domaine sur le dossier cible / -> www/sites/Monsite2.be, je pense que le problème vient de là.

    Il faut faire pointer tous vos domaines sur le dossier /www
    C'est ce que je fais chez OVH avec 5 sites sous drupal.

    Salut,

    Merci pour ta réponse.

    Donc j'ai changé dans le manager et j'ai mis /www comme dossier cible.

    Quand j'essayais d'accéder à Monsite2.be, il me mettait 403 Forbidden et maintenant il me met Internal Server error.

    Ce que je ne comprends pas avec ton idée, c'est comment il va différencier les deux url -> Monsite1.be et Monsite2.be ?

    Merci en tout cas,

    ++

    Hello hello,

    Je reviens aux nouvelles. J'ai configuré les deux sites.
    J'ai eu un peu de problème avec l'import des DB mais mnt tout fonctionne bien.

    J'aimerais juste maintenant rediriger mes deux noms de domaine Monsite1.be et Monsite2.be vers www.Monsite1.be et vers www.Monsite2.be.

    Pour un seul site, j'allais dans le .htaccess dans www/ et je décommentais les 2 #.
    Quand je fais cela maintenant il me redirige seulement Monsite1.be vers www.Monsite1.be.
    Par contre pour Monsite2.be il me redirige vers www.Monsite2.be et m'affiche une url ovh style "webmail ovh"

    Dois-je créé 2 autres mutli-domaines sites/www.Monsite1.be et sites/www.Monsite2.be ? Comment rediriger vers les www ? Ou juste changer le nom de mes dossiers avec les www ?
    Dois-je me servir du sites.php ?

    Merci d'avance encore pour votre aide,

    +++ ;-) +++

    Yiiiiiiiiiiiiiiiiiiiiiiiihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa !!!
    Bien joué les gars.
    Vous avez cartonné :-) Ca fonctionne super bien je peux commencer mon install.

    Un tout grand merci à vous tous.

    Trop content et je trouve ça super le multisite maintenant :-).
    Et Drupal effectivement c'est magique lol il fait ça tout seul.

    Conitnuez comme ça ! J'espère que ce post en aidera quelques-uns.

    +++ Coooool +++

    Bonjour, je bloque sur la question du lien symbolique :
    "Modifier la configuration Apache pour que votre nouveau site pointe bien vers Drupal... Dans le cas d'un sous-dossier il faudra ajouter un lien symbolique dans le dossier drupal avec le nom de votre sous-dossier : cd /usr/share/drupal6; ln -s . sousdossier"

    Mon premier site c'est bien installé et fonctionne :
    monsite.com/monpremiersite
    Mais lorsque je vais sur :
    monsite.com/mondeuxiemesite
    j'ai "error not found".
    Je ne peux pas accéder en ssh directement chez l'hébergeur.
    Du coup, j'ai fais le script php suivant :

    <?php
    $target
    = 'index.php';
    $link = 'monsite.com.mondeuxiemesite';
    symlink($target, $link);

    echo
    readlink($link);
    ?>

    Je l'ai mis au meme niveau que monsite.com/monpremiersite (vu qu'il n'y a rien au niveau d'au-dessus.)
    Ca m'affiche bien comme résultat : index.php
    mais lorsque je tape à nouveau : monsite.com.mondeuxiemesite
    j'ai toujours : error page not found

    Que faire ?

    Normal...

    La doc indique qu'il faut faire : cd /usr/share/drupal6; ln -s . soudossier

    Donc en php il faut faire un fichier create_symlink.php dans le dossier de drupal (celui qui contient déjà le fichier index.php de drupal.... et pas dans monsite.com/monpremiersite)

    avec à l'intérieur du fichier uniquement :

    symlink('.', 'mondeuxiemesite');

    Et pas : symlink('index.php', 'monsite.com.mondeuxiemesite');

    OK, alors voyons le plus simple d'abord :
    Dans un premier temps j'avais fait l'install comme ça :
    tout dans le dossier : monsite.com/sites/
    puis les sites étaient ainsi :
    monsite.com/sites/premiersite/
    monsite.com/sites/deuxiemesite/

    Mais cela me causait deux problèmes :
    1) j'avais un site par défaut dans sites/
    2) mes sites étaient en monsite.com/sites/premiersite/ et je les voulais en monsite.com/premiersite

    C'est pourquoi j'ai fais l'install dans monsite.com/premiersite, et là je n'avais pas de site parasite en plus, mais impossible d'aller plus loin que le premiersite.

    du coup, où faut-il placer la première install ?
    Merci.

    Je n'ai pas tout suivi, mais ne serait il pas plus simple de dupliquer le settings.php de l'un vers l'autre (ce qui ferait partager la même base de données) et de faire pointer les 2 domaines vers la même adresse.

    J'ai un exemple qui tourne :

    http://www.concoursbelote.fr
    http://www.monpetitlogiciel.fr

    Si l'intérêt est de pouvoir pointer avec plusieurs domaines, cela semble suffisant.

    Si j'ai bien compris vous voulez accéder à 2 sites distincts en faisant une install multi-site de Drupal.

    Les 2 sites doivent être accessibles via les URL

    http://www.mondomain.com/monpremiersite

    et

    http://www.mondomain.com/mondeuxiemesite

    Et le site principal : http://www.mondomain.com/ ne doit "rien" (?) contenir ?

    => 2 solutions :

    1/ La plus simple et la plus "Drupal" : installer Drupal dans votre dossier wwwroot ... dans le dossier sites de drupal : laissez le dossier default et créez 2 sous-dossier pour monpremiersite et mondeuxieme site, avec les fichiers settings par défaut... puis créer les liens symboliques pour ces 2 dossiers comme expliqué précédemment.

    Il suffira ensuite de lancer la procédure d'installation pour chaqu'une des 3 URL... ca créer 3 sites... et vous pourrez définir une page blanche par exemple pour le site par défaut.

    2/ Si vraiment le fait que le site par défaut soit géré par Drupal vous gène (bizarre...) : alors il faut faire l'installation de Drupal dans le dossier wwwroot/monpremiersite

    Dans ce cas vous pouvez utiliser wwwroot/monpremiersite/sites/default pour gérer ce site ... et pour gérer le 2e il va falloir créer un dossier du type

    wwwroot/monpremiersite/sites/mondomain.com.mondeuxiemesite

    Mais ca ne suffira pas : quand vous allez essayer de vous connecter à

    www.mondomain.com/mondeuxiemesite : il n'y aura rien à cet endroit... puisque Drupal est installé dans le dossier "monpremiersite"... donc il faut créer un lien symbolique dans le dossier racine du site (wwwroot) avec comme nom mondeuxiemesite et qui pointe vers monpremiersite (solution) (via un script php dans votre cas :

    symlink('mondeuxiemesite','monpremiersite')

    Puis lancer les install des 2 sites...

    Le site principal reste donc entierement vide (sans Drupal) à l'exception d'un petit lien symbolique...

    Oui, merci, c'est exactement ce que je voulais faire. En effet, je n'ai pas d'utilité pour la racine de mon site.
    Disons que je n'en ai pas l'utilité pour le moment. C'est vrai que je pourrais toujours mettre juste une page blanche pour le moment et plus tard gérer ça avec Drupal si nécessaire.
    En tout cas, je comprends le problème maintenant. Je vais tester tout ça.
    Merci.

    Bonjour à tous,

    J'ai crée un site drupal, et veux en créer un "clone" même modules et configuration, seule une CSS du thème changera.
    Bien sur en bon noob que je suis j'ai utiliser le dossier /sites/default de mon installe drupal.

    Pour l'instant j'ai essayé de configurer mon vhost pour accéder au site via le nom de domaine que je vais acheter, et depuis j'ai un 403 en voulant accéder à mon site local...
    J'ai crée un deuxième dossier dans /sites et copié les deux sites nécessaire à l'installe de base mais cette fois j'ai une erreur 500 avec dans mon log apache un trop grand nombre de redirection interne qui causerait l'erreur.

    Ma conf dans le fichier vhost :

    ServerAdmin webmaster@premiersite.com
    DocumentRoot "/Applications/MAMP/htdocs/sites"
    ServerName premiersite.com
    ErrorLog "logs/premiersite-error_log"
    CustomLog "logs/premiersite-access_log" common

    ServerAdmin webmaster@deuxiemesite.com
    DocumentRoot "/Applications/MAMP/htdocs/sites"
    ServerName deuxiemesite.com
    ErrorLog "logs/deuxiemesite-error_log"
    CustomLog "logs/deuxiemesite-access_log" common

    Pourquoi ce 403 ?
    Comment puis-je faire pour installer un deuxième site à côté du premier existant déjà dans défault ?
    Merci d'avance

    Bonjour,
    Je reviens à la charge après ma demande du mois de mars.
    En effet, mon souhait est d'avoir plusieurs sites comme suit :
    monsite.com/monsite1/
    monsite.com/monsite2/
    monsite.com/monsite3/

    J'ai bien suivi la procédure pour créer des repertoires, et pour faire des liens symboliques, mais dès que je passe à l'installation, que je tape :
    monsite.com ou monsite.com/monsite1
    je suis redirigé vers la page d'installe de monsite.com et c'est donc toujours monsite.com qui s'installe. L'installation fonctionne parfaitement, mais lorsque je veux installer un autre site de l'arborescence... je suis toujours redirigé vers monsite.com avec un "page not found" ou encore "site already installed". Que faire ?
    Je fais mes liens symboliques de la manière suivante :

    <?php
    $target
    = '.';
    $link = 'monsite.com.premiersite';
    symlink($target, $link);

    echo
    readlink($link);
    ?>

    Est-ce correct ? Le lien symbolique apparait bien dans mon logiciel FTP.
    Merci.

    Bonjour, je suis toujours bloqué sur la question du multisite en sous-dossiers.
    Mon message précédent n'a pas eu de réponse jusqu'à présent (je sais, ce sont les vacances).
    Est-ce que je bloque au niveau des liens symboliques ou plus tard ?
    Même en changeant les redirections, je remarque que ça me renvoie systématiquement vers le site default. Et même si je rentre la bonne URL à la main (pour l'install d'un sous-site), je suis renvoyé vers l'install du site par défaut (ou le site lui-même, s'il est déjà installé).
    Quelqu'un a-t-il une idée ? Merci.

    Le lien symbolique n'est pas bon... Vous pouvez le vérifier facilement :

    1/ Déposez en FTP un fichier "test.html" dans votre dossier "monpremiersite" sur votre serveur.
    2/ Ensuite avec votre navigateur aller voir la page :

    http://monsite.com/monpremiersite/test.html

    Ca marche ? Bien !
    3/ Essayez ensuite l'URL :

    http://monsite.com/monsecondsite/test.html

    Ca ne marche pas ? Votre lien symbolique n'est pas bon... Vous ne pourrez pas faire fonctionner Drupal comme vous le souhaitez...

    J'avais écrit en mars :

    il faut créer un lien symbolique dans le dossier racine du site (wwwroot) avec comme nom mondeuxiemesite et qui pointe vers monpremiersite (solution) (via un script php dans votre cas :

    symlink(‘mondeuxiemesite’,’monpremiersite’)

    DONC :

    $target = '.';
    $link = 'monsite.com.premiersite';
    symlink($target, $link);

    Ce n'est pas bon... Il faut faire

    $target = 'monpremiersite';
    $link = 'monseconsite';

    Au niveau du lien symbolique on est encore au niveau Apache... pas au niveau Drupal.

    Ce lien permet à Apache de comprendre que lorsque dans votre navigateur vous faites :

    http://monsite.com/monsecondsite alors il doit en realité chercher le fichier index.php qui se trouve "physiquement" dans le dossier monpremiersite (dans lequel vous avez déposé en FTP les fichiers PHP de drupal)...

    Ensuite seulement, Drupal se lance (via le index.php) : et là Drupal analyse l'url : voit qu'il y a un /monsecondsite dans l'URL... regarde dans son dossier sites et trouve un dossier monsite.com.monsecondsite ... etc

    Suivez strictement ces consignes et ça fonctionnera...

    Merci Petipopotam, mais décidément, il y a quelque chose que je ne comprends pas.
    Qu'est-ce que le "premier site" ?

    Ce que je dois avoir comme architecture, c'est :
    monsite.com/ --------> mon site de base
    monsite.com/monsoussite1 ------> un site qui utilisera la même base de données, mais dont la gestion est indépendante.
    monsite.com/monsoussite2 --------> pareil
    monsite.com/monsoussite3 --------> encore un autre
    ...

    Du coup, qui est premier site ? le site de base (ça j'arrive à l'installer, ça marche). Ou le site monsoussite1 ? Celui là, je n'arrive pas, je suis sans cesse redirigé vers le site de base.
    Je fais quelques tests et je vous tiens au courant. Bonne soirée.

    OK. Je précise...
    J'avais cru comprendre précedemment que vous ne vouliez PAS que le "site de base" tourne sur Drupal. Si c'est bien le cas l'arborescence devrait être :

    monsite.com/ ----> le site de base SANS Drupal... vous mettez ce que vous voulez dedans
    monsite.com/monsoussite1 : LE dossier qui contient tous les fichiers PHP Drupal (et donc le index.php)

    du coup forcemment il existe un dossier monsite.com/moussousite1/sites ... créé par Drupal

    Ensuite vous voulez créer un 2e site qui utilisera la même installation Drupal :

    Donc il faut créer un dossier monsite.com/monsoussite1/sites/monsite.com.moussousite2

    ET il faut EN PLUS créer un lien symbolique (et pas un dossier) :

    monsite.com/monsoussite2 -> monsoussite1

    Donc "il suffit" de créer un fichier PHP dans le dossier monsite.com/ (le site de base) qui va faire un ln -s monsoussite1 monsoussite2

    Vous pouvez ensuite tester le lien symbolique :

    Il suffit de déposer un fichier test.html dans

    monsite.com/monsoussite1/test.html

    dans votre navigateur vous DEVEZ alors pouvoir faire :

    http://monsite.com/monsoussite1/test.html MAIS AUSSI

    http://monsite.com/monsoussite2/test.html

    Sinon c'est que le lien symbolique n'est pas bon.

    Et bien sur http://monsite.com/test.html ne doit PAS fonctionner.

    Grace à ce lien symbolique vous pourrez alors faire dans votre navigateur :

    http://monsite.com/monsoussite2/install.php : ca lancera Drupal... qui chargera la bonne configuration et lancera l'installation... (configuration qu'il trouvera dans le dossier monsite.com/monsoussite1/sites/monsite.com.monsoussite2)

    C'est plus clair ? J'ai esssayé de vraiment tout détailler...

    Attention si finalement vous décidez de gérer le "site de base" sous Drupal après coup il faudra déplacer les fichiers Drupal et tous les sous dossiers à la racine du site et revoir la configuration et le lien symbolique... Pas sur qu'il n'y ait pas quelques "effets de bords" problématiques... mieux vaudrait faire ça dès le début ça serait probablement plus simple... Dans ce cas l'arborescence devient :

    monsite.com/ : Le site de base qui contient Drupal et son fameux index.php

    Du coup forcemment il y a un dossier monsite.com/sites

    et vous devez créer 2 dossiers :

    monsite.com/sites/monsite.com.monsoussite1

    monsite.som/sites/monsite.com.monsoussite2

    ET en plus créer 2 liens symboliques (pas des dossiers !) qui vont pointer vers le dossier qui contient "vraiment" Drupal (donc votre site de base).

    monsite.com/monsoussite1 -> .
    monsite.com/monssousite2 -> .

    Donc : ln -s . monsoussite1 et ln -s . monsoussite2

    Si vous déposer un fichier test.html directement dans le site de base monsite.com

    vous devez alors pouvoir faire dans votre navigateur :

    http://monsite.com/test.html (évidemment)

    mais aussi :

    http://monsite.com/monsoussite1/test.html

    Et

    http://monsite.com/monsoussite2/test.html

    Si c'est le cas, les 2 liens symboliques sont bien configurés... vous pouvez commencer les installations Drupal des 3 sites via votre navigateur :

    http://monsite.com/install.php

    http://monsite.com/monsoussite1/install.php

    http://monsite.com/monssousite2/install.php

    Après tout ça vous devriez être capable d'extrapoler toutes les variantes possibles !

    Attention : il n'est pas possible (en tous cas avec Drupal 6, je n'ai pas testé avec Drupal 7) de faire un dossier de configuration dans le dossier sites nommé : monsite.com.monsoussite1.monsoussousite1

    L'analyse de l'URL de Drupal pour trouver le fichier de configuration s'arrête au 1er niveau d'arborescence... On doit pouvoir faire un patch assez facilement je pense

    Salut Petipopotam,

    Désolé, mais je bloque continuellement sur la question du lien symbolique.
    Impossible de passer cette étape. Soit le lien symbolique ne se fait pas, malgré un script qui me semble correct, soit le lien symbolique se fait, mais il n'est pas bon.
    Du coup, si j'essaie un fichier test.html, je suis sans cesse rediriger vers la page d'install pour le site de base.
    J'ai opté en effet pour l'architcture : sitedebase/ ; sitedebase/soussite1 ; sitedebase/soussite2 ça me parait plus clair finalement.
    Vos explications sont tout à fait clair, mais j'ai l'impression que quelque chose bloque. Lorsque dans mon script je mets un "." pour le dossier courant, rien ne se passe (je n'ai pas d'echo, rien). Si j'écris l'adresse entière, en abolu (monsite.com), alors j'ai bien un lien qui se crée, mais ce n'est pas le bon. En cliquant sur le lien dans le logiciel ftp j'obtiens un : "too many level of symbolic links" et le lien virtuel ne renvoi vers rien.
    Je ne sais pas pourquoi ça ne marche pas. Faut-il contacter mon hébergeur directement (Ouvaton en l'occurence).

    Ca y est, c'est réussi !
    Grâce à l'aide que j'ai obtenu sur un autre fil, voir ici :
    http://drupalfr.org/forum/support/support-general/32848-resolu-installat...

    Le bon script était le suivant :

    <?php
    $target
    = '.';
    $link = 'soussite1';


    symlink($target, $link);

    echo
    readlink($link);
    ?>

    à répéter pour chaque sous-site. Et là où on met "soussite1" il ne faut mettre que le nom du soussite1 et non pas l'adresse complète comme je le pensais (je mettais monsite.com/soussite1 ; ce qui est mauvais).

    Merci pour votre aide. Ca marche enfin, je vais pouvoir avancer !

    Bon et bien le plus important c'est que ça fonctionne :-)

    Mais si vous re-lisez attentivement mon message... vous verrez que c'est exactement ce que je vous disais de faire : ln -s . monsoussite1

    Je n'ai jamais écrit : ln -s . monsite.com/monsoussite1

    Tsss... ;-)

    Bon courage pour la suite !

    Bonjour et merci pour ce tuto on ne peut plus clair.

    Petite question qui peut paraître stupide, mais pardonnez moi, je débute sur Drupal
    En fait je ne souhaite pas avoir de site principal, seulement un 'portail' (sur www.nomdomaine.com) qui serait en fait une simple fenêtre html pointant sur mes trois sous-domaines drupal:
    site1.nomdomaine.com
    site2.nomdomaine.com
    site3.nomdomaine.com

    Des idées?

    Bonjour,

    Merci pour ce Tuto, mais je suis complètement perdu...

    Je suis en local sur mon PC avec Wamp
    Ma strucutre est "d:\web\drupal7\" dans lequel j'ai mis Drupal7 (bien que ce Tuto parle de la V6).
    Dans "/sites" j'ai créé mon dossier "www.monsite.fr" avec le fichier "default.settings.php"

    Si je vais sur mon navigateur à cette adresse "http://localhost/www.monsite.fr/" il m'affiche le contenu du dossier à savoir le fichier nommé plus haut.
    Et j'en suis là... impossible d'aller plus loin...

    J'ai beau lire les commentaires, je n'y arrive pas du tout !
    Ca parle de lien symbolique, alors qu'on en parle pas dans le Tuto...
    J'essais de comprendre le problème des autres pour trouver ma solution...

    Bref... au secours :)

    Merci pour votre aide :)

    Bonjour,
    Ma config sous windows10 avec drupal 7.41 et wampserver 2.5
    dans le navigateur lancer "monsite.com:8080" et pas "monsite.com"
    sinon erreur "The requested URL monsite.com was not found on this server."

    1 - fichier C:\Windows\System32\drivers\etc\hosts

    127.0.0.1       localhost
    127.0.0.1       monsite.com www.monsite.com

    2 - fichier C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf

    #Listen 12.34.56.78:80
    Listen 0.0.0.0:8080
    Listen [::0]:8080
    ...
    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf

    3 - fichier C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf

    <VirtualHost *:8080>
        DocumentRoot "C:/wamp/www/"
        ServerName localhost
    </VirtualHost>

    <VirtualHost *:8080>
        DocumentRoot "C:/wamp/www/drupal/"
        ServerName monsite.com
    </VirtualHost>

    4 - fichier C:\wamp\www\drupal\sites\sites.php = rien (pas de fichier sites.php créé)

    5 - dossier C:\wamp\www\drupal\sites\monsite.com créé et contient default.settings.php original

    Et aussi... pour que tout soit correct avec port 8080.

    6 - fichier C:\wamp\www\index.php

    $suppress_localhost = false;

    7 - fichier C:\wamp\wampmanager.tpl pour "localhost:8080"

    [Menu.Left]
    ;WAMPMENULEFTSTART
    Type: separator; Caption: "Powered by Alter Way"
    Type: item; Caption: "${w_localhost}"; Action: run; FileName: "${c_navigator}"; Parameters: "http://localhost:8080/"; Glyph: 5
    ;WAMPPROJECTSUBMENU

    Type: item; Caption: "${w_phpmyadmin}"; Action: run; FileName: "${c_navigator}"; Parameters: "http://localhost:8080/phpmyadmin/"; Glyph: 5
    ...
    Type: item; Caption: "${c_webgrind}"; Action: run; FileName: "${c_navigator}"; Parameters: "http://localhost:8080/webgrind/"; Glyph: 5