Comment installer drupal en multi-sites

Onglets principaux

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

Je vous propose une version modifier pour installer un site ou une plateforme multi-sites sous Drupal (ce tutoriel une version modifier du site http://drupalfr.org/node/6171).

Le principe :

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 bonjour.com et d’un second site sur http://bonjour.com/travail ou http://travail.bonjour.com, il faudra créer pour chacun d’entre eux un sous-répertoire dans le répertoire /sites : sites/bonjour.com/ (mkdir sites/bonjour.com/ pour http://bonjour.com), sites/bonjour.com.travail/ (mkdir sites/bonjour.com.travail/ pour http://bonjour.com/travail), et en fin sites/travail.bonjour.com/ (mkdir sites/travail.bonjour.com/ pour http://travail.bonjour.com).

Installer d’abord le premier site http://bonjour.com

  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

    Sur le terminal linux
    cd chemin_du_drupal/sites/
    mkdir bonjour.com
    cp default/default.settings.php  bonjour.com/
    mv bonjour.com/default.settings.php bonjour.com/settings.php
    chmod 777 bonjour.com/settings.php
    mkdir bonjour.com/files
    chmod 777 bonjour.com/files
    rmq : on doit pas supprime le dossier default/ et default/default.settings.php !!

  5. Lancer l’installation automatique en se rendant sur l’URL du site http://bonjour.com.
  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

si on a un problème dans cette étape

Warning: fopen(./sites/default/default.settings.php) [function.fopen]: failed to open stream: No such file or directory in /chemin_drupal/includes/install.inc on line 188

Warning: Cannot modify header information - headers already sent by (output started at /chemin_drupal/includes/install.inc:188) in /chemin_drupal/includes/install.inc on line 618

Warning: Cannot modify header information - headers already sent by (output started at /chemin_drupal/includes/install.inc:188) in /chemin_drupal/includes/install.inc on line 619

c'est a dire que le dossier default et le fichier  default/default.settings.php ne se trouve pas par drupal dans le dossier sites/ c'est a dir il sont supprimer. si c'est le cas on peut les récupérers par exemple mkdir sites/default; cp sites/bonjou.com/settings.php sites/default/; mv sites/default/settings.php sites/default/default.settings.php.

Dès que l’installation est terminée, il est possible de publier du contenu sur ce premier site.

Installer ensuite le second site

  1. 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)

    Sur le terminal linux
    A. pour la cas  bonjour.com/travail

    cd chemin_du_drupal
    sudo ln -s . travail
    cd chemin_du_drupal/sites
    mkdir bonjour.com.travail
    cp default/default.settings.php  bonjour.com.travail/
    mv bonjour.com.travail/default.settings.php bonjour.com.travail/settings.php
    chmod 777 bonjour.com.travail/settings.php
    mkdir bonjour.com.travail/files
    chmod 777 bonjour.com.travail/files

    B.  pour le cas travail.bonjour.com
    mkdir travail.bonjour.com
    cp default/default.settings.php  travail.bonjour.com/
    mv travail.bonjour.com/default.settings.php travail.bonjour.com/settings.php
    chmod 777 travail.bonjour.com/settings.php
    mkdir travail.bonjour.com/files
    chmod 777 travail.bonjour.com/files
    cd /etc/apache2/sites-available/
    nano travail.bonjour.com

    <VirtualHost  *:80>

    ServerName travail.bonjour.com
    ServerAlias travail.bonjour.com
    DocumentRoot (chemin de drupal)
    ErrorLog /var/log/apache2/travail.bonjour.com._error_log
    CustomLog /var/log/apache2/travail.bonjour.com._access_log combined

    </VirtualHost>

    sudo a2ensite travail.bonjour.com
    sudo  /etc/init.d/apache2 restart

    dans les deux cas (A ou B)on supprime pas le dossier sites/default/ et sites/default/default.settings.php

  2. Lancer l’installation automatique en se rendant sur l’URL du deuxième site (bonjour.com/travail ou travail.bonjour.com).
  3. 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
  4. 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.

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.

Version de Drupal : 

Commentaires

bjr,
cette configuration pour l'installation drupal sur un serveur dédie ou sur une machine local.
et apropos les modifications apache dans le cas d'hébergement mutualisé on peut modifie uniquement le fichier caché .htaccess qui ce trouve sur le répertoire racine du drupal.