Installation de WordPress en multi domaines

Dès le début de l’année, Automattic (éditeur de WordPress), avait annoncé que la prochaine version de WordPress (3.0) gérerait de manière native le multi-domaines (anciennement assuré par WordPress MU, qui serait donc inclut directement dans WordPress 3).

La dernière version disponible (au 20 juin 2010) propose effectivement ce genre de fonctionnalités.

Cependant, de base, WordPress 3 ne propose du multi-sites (terme générique pour désigner ces fonctions) que selon les schémas suivants :

  • X sous-domaines  d’un nom de domaine : toto.domaine.com, tata.domaine.com, etc
  • X sous répertoires d’un nom de domaine : domaine.com/toto, domaine.com/tata, etc.

Cela répond à certaines problématiques, notamment pour de la mutualisation à grande échelle, mais dans des cas bien précis comme le mien (hébergement d’un nombre limité de blogs sur un même serveur dédié), il peut être intéressant de pouvoir faire tourner plusieurs blogs ayant des noms de domaine séparés sur la même base de code, notamment pour faciliter les mises à jour.

WordPress 3 ne le gère pas de manière « intuitive » mais nous allons voir ensemble qu’il est possible tout de même, au prix de quelques manipulations, de le faire fonctionner parfaitement dans cette configuration.

Pré-requis :

1/ Installation de WordPress 3

Celle-ci est identique à celle des versions précédentes, mis à part que vous pouvez maintenant choisir le mot de passe de l’utilisateur principal dès l’installation.

2/ Activation du mode multi-sites

Il vous suffit de rajouter les lignes :
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);

juste après
define('WP_DEBUG', false);

dans votre fichier wp-config.php (à la racine de votre installation de WordPress)

Si vous vous reconnectez sur votre blog « principal », vous verrez alors apparaître un menu Outils / Réseau sur lequel il vous faudra cliquer :

Cette page permet de créer un réseau de sites (en d’autres termes, de mutualiser les fichiers de WordPress entre plusieurs sites).

Vous remarquez qu’il n’y a aucun mention du cas qui nous intéresse : ce n’est pas grave, nous allons contourner ce problème :

  • Sélectionnez l’option Sous-dossiers
  • Remplissez les cases Nom du réseau et Adresse de contact de l’administrateur
  • Validez

La page suivante vous indique les modifications à effectuer sur vos fichiers wp-config.php et .htaccess : pensez à en faire une sauvegarde avant !
Pensez également à créer un sous-dossier blogs.dir dans votre dossier wp-content.

Cliquez ensuite sur Se connecter en bas de la page et reconnectez-vous avec vos identifiants du blog qu’on vient de créer.

Un menu Super Admin est désormais présent en haut de la page :

3/ Paramétrage du multi domaines

Entrent maintenant en jeu le plugin domain_mapping : déposez le fichier domain_mapping.php récupéré au début dans un sous-dossier mu-plugins que vous aurez créé dans /wp-content.

Déposez ensuite le fichier sunrise.php directement dans le dossier /wp-content.

Rajoutez ensuite la ligne

define( 'SUNRISE', 'on' );
dans wp-config.php juste après les lignes que vous venez d’y rajouter.

Ces deux manipulations ont pour effet d’activer le menu Domain Mapping dans Super Admin. Dans cet écran, précisez l’IP du serveur hébergeant votre/vos site(s), cochez les 2e et 3e cases et validez :

4/ Création effective des domaines

Avant tout, rendez vous dans Super Admin / Options et choisissez Français comme langue par défaut.

Ensuite, on va se rendre dans Super Admin / Sites : comme indiqué plus haut, WordPress 3 ne gérant pas de manière native les multi domaines, nous allons devoir ruser.

Dans le formulaire Ajouter un site, saisissez le nom du site que vous voulez créer (sans les www et extension, en fait, peu importe ce que vous saisissez ici)

Complétez les champs Titre du site et Adresse de contact de l’administrateur (vous remarquerez que j’ai utilisé l’adresse principale, pour pouvoir me reconnecter facilement sur le nouveau blog).

Validez : notre nouveau blog est maintenant accessible depuis www.domaineprincipal.com/nomdusite.

Rendez-vous alors sur ce blog (via le bouton Afficher sous sa ligne dans la page des sites).

Il faut maintenant donner son URL propre à ce blog : allez sur la page d’administration du sous-blog (de la forme www.domaineprincipal.com/nomdusite/wp-admin).

Vous devriez normalement être connecté automatiquement (d’où l’intéret d’utiliser le même mail pour l’utilisateur principal).

Dans Super Admin / Domains / New Domain, saisissez le « Site ID » (à récupérer dans la page Sites du blog de base) et son domaine associé : votre sous-blog est désormais accessible par sa propre URL !

Limitations :

  • les thèmes doivent être activés par un utilisateur « Super Admin » et ne peuvent être modifiés de manière unilatérale : en clair, si je modifie un thème, il est modifié pour tous les blogs qui l’utilisent
  • dans cette configuration, tous les blogs utilisent la même base de données (je prépare un second article plus spécifique pour une solution permettant de découpler les blogs à ce niveau là).