Plusieurs blogs sur plusieurs noms de domaines mais gérés par un seul Dotclear 2, c’est possible !

Cette semaine, un nouvel article un peu plus « technique » que d’habitude, pour aider ceux qui se retrouveraient avec la même problématique que moi…

Alors oui, je me doute bien que les « vieux de la vieille » de Dotclear, les « grands gourous », ou même les « super habitués », savent parfaitement comment faire cela, mais sans être une débutante pour autant dernièrement je me suis retrouvée coincée face à cette problématique, j’ai trouvé que la doc sur le sujet n’étais pas nécessairement très claire et heureusement qu’un des « grands gourous » justement m’a aidée…

En fait, c’est effectivement assez simple, une fois qu’on le sait :)

Alors voilà, en quelques points, ce qu’il faut faire, exposé de manière simple (ou en tout cas je l’espère) !

ATTENTION cependant : je ne fournirai PAS de support sur ce billet, donc je vous conseille plutôt d’aller sur les forums de Dotclear, l’aide y est toujours rapide et efficace ! ;)

Déjà, pour que cela fonctionne, vous devrez, évidemment, avoir un hébergement suffisamment gros pour accueillir tous vos blogs, et avoir les droits d’administration des noms de domaine désirés pour les faire pointer là où il faut (plus sur ce sujet un peu plus loin).

L’idée, donc, est d’utiliser le système de multiblog de Dotclear afin d’avoir une seule interface d’administration pour plusieurs blogs.
Votre URL d’administration est et restera donc toujours http://mondomaine.tld/dotclear/admin, où mondomaine.tld est un des noms de domaine choisis (ça marchera avec tous, en fait).

1ère étape : installer Dotclear :)

Je pars du principe que vous avez déjà installé un blog Dotclear, ou en tout cas que vous savez le faire, et je vous laisse le faire avant de continuer.

Un blog tout bête par défaut ira très bien, mais le mieux serait de lui donner un id particulier et dans ce cas je vous conseille de le faire en fonction du nom de domaine auquel il se réfèrera (mais restez simple, un mot unique c’est encore le mieux).

2ème étape : tout ranger comme il faut

On partira du principe que vos blogs vont avoir des ressources en commun (thèmes, plugins, medias…) mais il faut noter que cette procédure vaut aussi bien dans le cas d’un monoblog : avoir les fichiers propres au blog bien séparés de ceux de l’admin est simplement une question de bon sens.

En premier lieu, on va donc se débrouiller pour avoir côte à côte, à la racine de votre hébergement, deux dossiers : “dotclear” (qui contiendra toute l’install de dotclear) et “all-blogs”.

Ce second dossier “all-blogs” contiendra plusieurs dossiers : “themes” (vos thèmes, donc, y compris une copie du thème par défaut “default”), “plugins” (les plugins que vous installez, pas ceux par défaut de Dotclear, qui restent là où ils sont), et “public” (qui contiendra généralement vos médias en tout genre, vidéos, images, etc.).

Pour que Dotclear voient les plugins que vous installerez dans ce répertoire, il vous faudra modifier le fichier “config.php” se trouvant dans “dotclear/inc/” en remplaçant :

//Plugins root
define('DC_PLUGINS_ROOT',dirname(__FILE__).'/../plugins');

par

// Plugins root - les plugins de base restent en place, les nouveaux vont dans /all-blogs/plugins
define('DC_PLUGINS_ROOT',dirname(__FILE__).'/../plugins'.PATH_SEPARATOR.dirname(__FILE__).'/../../all-blogs/plugins');

De la même manière, pour que Dotclear voit les thèmes et les médias, il vous faut changer quelques préférences dans la page “about:config”, et ce pour tous les blogs que vous aurez par la suite :

public_path: ../all-blogs/public
public_url: /all-blogs/public
themes_path: ../all-blogs/themes
themes_url: /all-blogs/themes

3ème étape : le fichier index.php à la racine

A la racine de votre hébergement, il vous faudra créer un fichier index.php contenant un code similaire à celui-ci, en l’adaptant à vos besoins (en testant en fonction de vos noms de domaine/ids de blogs, donc) :

<!--?php    /* placer le blog a la racine :    l'identifiant unique par défaut du blog est "default"    l'identifiant est déduit de l'url appelée    les fichiers de dotclear sont dans /dotclear */    $myBlogId = 'blog1'; // par défaut le blog sera le "blog1"       $myBlog = $_SERVER['HTTP_HOST']; // on récupère le nom de domaine       if (preg_match("/mot1/i", $myBlog)) { // on cherche si le nom de domaine contient le mot "mot1"      $myBlogId = 'blog1'; // si oui, alors l'id du blog est "blog1"       } else if (preg_match("/mot2/i", $myBlog)) { // sinon on cherche si le nom de domaine contient le mot "mot2"   	      $myBlogId = 'blog2'; // et si oui, alors l'id du blog est "blog2"       } // etc...    // Si vous avez beaucoup de cas, il est possible qu'un switch soit plus efficace/rapide, mais je ne suis pas experte...    define('DC_BLOG_ID',$myBlogId); // définir l'identifiant du blog    require dirname(__FILE__).'/dotclear/inc/public/prepend.php'; // définir le chemin vers prepend.php ?-->

4ème étape : les noms de domaine

En ce qui concerne les noms de domaines et l’hébergement, il faudra vous assurer que les noms de domaine pointent vers votre hébergement, pour cela je vous invite à consulter la documentation de votre registrar/hébergeur (selon les cas).

A savoir cependant, si vous souhaitez faire cela dans un sous-répertoire de votre hébergement (si celui-ci vous sert déjà à autre chose et qu’il vous reste de la place), c’est tout à fait possible si vous vous assurez que les noms de domaines pointent vers le bon sous-répertoire (là où vous aurez rangés “dotclear” et “all-blogs” et qui sera donc votre racine pour ces noms de domaine)… :)


Voilà, maintenant vous pouvez créer tous les blogs supplémentaires que vous voulez, leur attribuer des thèmes, les remplir avec du contenu et des médias, installer vos plugins, etc…

Enfin, pour chacun des blogs il faudra que l’adresse entrée dans le champs “URL du blog” de la page “Paramètres du blog” corresponde au format suivant : “http://mondomaine.tld/index.php/” (ou “http://mondomaine.tld/index.php?” si vous êtes en mode “query_string”), “http://mondomaine2.tld/index.php/” (idem), etc.

Pour que personne ne vous voie faire vos petites affaires tout en étant en “conditions réelles” (sur le serveur définitif, donc), je vous conseille d’utiliser le plugin “Private Mode” (et là pour les plus geeks).

A savoir aussi, il existe d’autres méthodes quand on a accès à la configuration Apache du serveur d’hébergement, mais comme ce n’est pas toujours le cas, cette méthode est là ! :)

J’espère que cet article vous aura été utile, et que je n’ai pas raconté trop de bêtises :)

Sinon, les gourous, n’hésitez pas à me reprendre !

3 réponses à cet article

# - - Lomalarch -

Salut, salut,

juste un détail : les emplacements public_url et themes_url ne seront pas valables en l’état, à moins que, dans chaque dossier correspondant à la racine d’un domaine, on ait un lien symbolique qui pointe vers all-blogs…ce qui suppose un accès ssh au serveur, qui n’est pas offert à tout le monde (et tout le monde ne sait pas faire un ln -s, mais n’embrouillons pas les choses).

Il faut donc, ou une url complète -http://mondomaine.tld/all-blogs/pub et -http://mondomaine.tld/all-blogs/the (où le domaine est celui qui pointe à la racine du ftp) ou, si on ne veut pas d’interférence entre les domaines, un dossier themes et un dossier public dans chaque dossier de domaine avec pour chaque blog.

public_path: ../dossierdomaine/public
public_url: /public
themes_path: ../dossierdomaine/themes
themes_url: /themes

Si c’est pas clair (ce qui n’est pas exclu) je peux affiner :-)

Merci, en tout cas, de partager ton expérience !

# - - Marie ALHOMME -

Hello,
J’avoue ne pas comprendre ton objection, je te confirme que ça marche très bien tel que je l’ai décris, il n’y a pas besoin d’autre chose.

En revanche, il faut bien s’assurer que les différents ndd pointent bien tous vers le même répertoire racine (comprenant all-blogs et dotclear, donc) le reste se faisant « tout seul » avec les différentes étapes décrites dans l’article…

Cela étant dit, c’est Xave qui m’a donné cette solution (et qui a relu l’article avant que je le publie), et elle fonctionne, du coup si j’ai raté une subtilité il faudrait engager le débat avec lui et me dire le résultat de vos délibérations, si je dois changer quelque chose dans l’article, etc…

Tenez-moi au courant, pour l’instant je considère que je ne change rien et que ton commentaire vient d’un quiproquo, cad que la méthode fonctionne telle que décrite :)

Merci en tout cas de ta visite et de tes précisions !
Marie

# - - Lomalarch -

Ahui, pardon, je n’avais compris que tous les ndd pointaient au même endroit. J’ai l’habitude de configurations où les domaines pointent sur des dossiers différents. Mes excuses, donc :-)

Votre réponse ?

XHTML: Vous pouvez utiliser ces balises : <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Chez PouipouiDesign

  • PouipouiDesign / 2012 / Webdesign / Intégration / Responsive
  • PouipouiDesign / 2011 / JDS / Intégration
  • PouipouiDesign / 2011 / Renault Sport F1 / Webdesign / Intégration
  • PouipouiDesign / 2011 / CinéLycée / Intégration
  • PouipouiDesign / 2011 / Sud Web 2011 / Webdesign / Intégration / Développement
  • PouipouiDesign / 2010 / Raymond Interactive / Intégration / Développement
Retour en haut