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 :
- les fichiers d’installation de WordPress 3
- les fichiers pour la mutualisation : domain_mapping.php et sunrise.php
- un nom de domaine « principal » pointant vers votre hébergement (dans notre exemple, www.geekcherchegeekette.fr)
- un ou des noms de domaine pointant vers le même hébergement
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à).
10 réponses à “Installation de WordPress en multi domaines”
Merci. Je viens de passer à WP3 et je me demandais justement comment activer le multi-sites de cette manière
[…] This post was mentioned on Twitter by Samy Rabih, Sébastien ONILLON. Sébastien ONILLON said: RT @fetard: Installation de WordPress 3 en config multi domaines : http://bit.ly/dqONKD […]
Bonjour.
Merci, tout s’est bien déroulé, sans aucun message d’erreur, mais après m’être reconnecté, je n’ai pas de menu Super admin…
Quelqu’un a une idée ?
Facilinfor : as-tu bien modifié ton fichier wp-config.php ?
Il me semble… Voici les lignes importantes :
define(‘WP_DEBUG’, false);
/* Pour la gestion multi-sites */
define( ‘WP_ALLOW_MULTISITE’, true );
define( ‘SUBDOMAIN_INSTALL’, true );
$base = ‘/’;
define( ‘DOMAIN_CURRENT_SITE’, ‘pldm.net’ );
define( ‘PATH_CURRENT_SITE’, ‘/’ );
define( ‘SITE_ID_CURRENT_SITE’, 1 );
define( ‘BLOG_ID_CURRENT_SITE’, 1 );
/* C’est tout, ne touchez pas à ce qui suit ! Bon blogging ! */
Grâce à l’aide recue sur un autre site : dans ma hâte, j’ai cru au double emploi et n’avais pas repris la ligne
define( ‘MULTISITE’, true );
Maintenant, me voilà Super admin !
J’ai eu des problèmes d’install en suivant cette méthode. J’ai donc suivi la méthode donnée sur cette page :
http://wpchannel.com/activer-fonctionnalites-multi-sites-wordpress-3-0/
NOTE : A la reconnexion à l’interface d’admin, j’ai du aussi faire un nettoyage des cookies (cookies du domaine sur lequel l’install se fait) car la connexion bugguée aussi et me ramené en boucle à la page de login.
puis j’ai continué l’intall à votre façon à partir de l’étape 3.
Et tout a bien fonctionné
Bonjour,
J’ai fait l’installation comme ci-dessous avec deux domaines :
http://www.domaine1.com qui a reçu l’installation
http://www.domaine2.com qui doit correspondre à http://www.domaine1.com/domaine2/
En administration, j’arrive bien à gérer les deux domaines mais en mode normal seul http://www.domaine1.com fonctionne. Lorsque je tape http://www.domaine2.com, cela ne fonctionne pas.
D’où mes questions :
1/ Dois-je installer quelque chose sur http://www.domaine2.com
2/ Que dois mettre dans mes DNS pour que quand je clique http://www.domaine2.com j’arrive bien sur http://www.domaine1.com/domaine2/
3/ Avant de modifier mes DNS, puis je siluler avec mon fichier host en local car je ne souhaite pas modifier mes DNS tout de suite ayant déjà des blogs en production.
J’espère avoir été clair 🙂
Si quelqu’un peut me donner des pistes de recherches, merci d’avance
Patrice
Patrice : il faut que http://www.domaine2.com pointe vers la même IP que http://www.domaine1.com et qu’il soit enregistré sur cet hébergement.
Cela est parfaitement simulable en local
[…] multi-sites mais qui nécessite un hébergement en serveur dédié, plus d’info ici et ici. Anyway, je décide donc de faire un seul blog, or le nom que j’avais pris initialement sur […]