Script WordPress sur plusieurs domaines (multi-domaines et multi-sites)
Pour mon premier post, je vais faire simple, je vais détailler sous quelle forme j’ai déployé mon / mes premiers sites sous WordPress. J’ai découvert réellement ce célèbre package Php pour la création de blog il y a seulement quelques mois. J’en ai tellement entendu parler, et puis c’est quand même la référence dans le domaine !
Pourtant, quelle ne fut pas ma surprise lorsque j’ai voulu mettre en place mes premiers blogs, j’avais une poignée de noms de domaines parkés et tant qu’à faire je voulais qu’ils aient du contenu pour servir à quelque chose. Mon premier souhait, a été de directement installer WordPress sur un vhost Apache, dans l’optique de n’avoir qu’un seul code Php unique pour tous les blogs. L’objectif était, lors de prévisions de mises à jour de WordPress, de ne pas avoir à me taper une mise à jour pour chacun des blogs, logique.
J’ai donc suivi quelques tutoriaux pour tenter d’arriver à mes fins, déjà j’ai été étonné que ce ne soit pas nativement simple à mettre en oeuvre. Je rappelle que le type de mise en place que j’ai fait, n’est pas sur le même domaine (je ne voulais pas faire blog1.domaine.ext, blog2.domaine.ext, blog3.domaine.ext, non ça aurait été trop simple).
Moi je comptais faire un truc pour avoir par exemple :
- blog.domaine1.ext
- www.blog2.ext
- www.blog-annexe.ext
- etc … et que chaque blog bien sûr soit hébergé sur le même espace (même vhost)
Et finalement, tous les tutoriaux n’étaient pas spécialement appropriés pour ce que je devais faire, j’ai donc du détourner légèrement la procédure pour y parvenir, voici comment j’ai fait :
En suivant par exemple des tutoriels comme ici, et il y en a d’autres sur le net, on voit clairement que nous avons deux choix :
Multi-site sous forme de sous domaine
ou
Multi-site sous forme de sous dossiers
Bof. Mais on va quand même fonctionner sur un système de sous domaine (sauf que ce sera chaque fois www.).
Enfin, comme dans les tutoriaux, vous allez pouvoir créer un site, en mettant chaque fois un nom de domaine différent.
Il faut déjà activer le mode multi-sites sur WordPress, donc ouvrir à la racine (faire une sauvegarde de ce fichier avant au cas où) :
wp-config.php
et après la ligne :
define('WP_DEBUG', false);
ajouter :
/* multi-sites */
define('WP_ALLOW_MULTISITE', true);
et juste après :
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
$base = '/';
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
à la différence des autres tutoriaux, le domaine n’est pas fixe, il est variable et c’est la directive DOMAIN_CURRENT_SITE qui permet de gérer ça, on utilise d’ailleurs les variables d’environnement PHP pour avoir le host actuel.
Les SITE_ID_CURRENT_SITE et BLOG_ID_CURRENT_SITE servent à définir l’id du site principal, dans la base de données.
Une fois ceci fait, vous pouvez aller dans l’administration WordPress, et créer le premier (sous)site.
Attention, par défaut, WordPress va créer des sous-sites en partant de votre domaine initial, il faudra aller modifier manuellement le domaine de chaque blog dans la configuration de chacun des sites, à plusieurs endroits, dans le menu Mes sites, Admin du réseau, Sites.
Là vous verrez directement que la colonne Domaine n’est pas correcte, il faut donc modifier chaque site, aller dans ses réglages, et mettre à jour les valeurs de Siteurl, Fileupload Url.
Ce qui est plutôt cool, c’est que cette méthode permet :
- d’avoir des thèmes différents entre chaque site, et donc un thème par site
- d’activer ou non certains plugins, indépendamment de chaque blog
- de se loguer par les urls directes sur chaque domaine : /wp-admin/ par exemple
Voilà, j’espère que cette petite astuce vous aura autant aidé qu’à moi, je peux compléter l’article si besoin. L’avantage est que aujourd’hui, j’avais 4 blogs qui tournaient sur le même code WordPress, et je viens de créer celui-ci, le 5ème, donc à l’avenir beaucoup plus simple à mettre à jour, que ce soit pour les plugins ou WordPress lui-même.
Génial!!!
Le coup du DOMAIN_CURRENT_SITE m’a vraiment pris la tête et pas grand monde n’a l’idée de ta petite solution sur la toile.
Après ma création de multi domaine, sans ce petit détail, j’accédais à tous mes sites mais impossible de se connecter au Dashbord. WordPress me signalait une erreur de cookies inexistante.
Bref, Merci beaucoup.