Tutoriel : Installer Dotclear sur un serveur RPS OVH

Voilà un billet qui n’interessera probablement pas les lecteurs habituels de ce blog (désolé Mélanie !). Alors, pourquoi parler technique sur Nokto ? Tout simplement parce, quand je n’arrive pas à faire quelque chose, je trouve bien souvent la réponse sur d’autres blogs, via Google. Et il se trouve que là, je n’ai pas trouvé de réponse, et que j’ai du chercher par moi-même. Alors je me dis que, pour une fois, ce serait pas idiot de renvoyer la balle et de créer mon propre tutorial. Si vous faites parti du public visé, n’hésitez à me faire part de vos retours ou à demander des précisions !

Quelques précisions d’abord : Dotclear est un « logiciel libre de publication web », un moteur de blog en somme, très facile à utiliser et à installer, sur la plupart des hébergeurs gratuits ou mutualisé. L’intérêt d’un tel tutorial est donc moins de décrire l’installation de Dotclear elle-même que le parametrage sur serveur. Pour pousser le vice, j’irais jusqu’à décrire l’installation telle que je l’ai réalisée : en multi-blog, avec des urls sans « index.php », et un nom de sous-domaine par blog (blog1.domaine.org, blog2.domaine.org, etc.), des fioritures en somme, dont vous pouvez très bien vous passer : Dotclear fonctionne très bien sans.

L’installation décrite ici fonctionne pour un serveur RPS (testé sur I et II) avec la distribution OVH Release 2 (Gentoo 2006 + Apache 2 + PHP/MySQL 5 + Webmin). J’imagine qu’on peut l’extrapoler à n’importe quel serveur utilisant une distribution et des logiciels équivalents, voire à d’autres distributions, mais en fait, je n’en sais rien. N’hésitez pas à me faire part de vos retours. J’ajoute enfin que je pars dans cette description d’un serveur clé en main tel qu’il est proposé par OVH (après une création ou une réinstallation par exemple), sans aucune customisation.

Etape 1 : Créer l’hébergement

Grâce à Webmin et au module OVHM préinstallé sur les serveurs RPS, vous pouvez facilement configurer à la volée Apache, MySQL et BIND pour ajouter des sites à votre serveur. Un « hébergement » correspond à un espace sur votre serveur (un répertoire dans /home/) qui contiendra les fichiers hébergés et vers lequel pourront pointer une infinité de noms de domaine et sous-domaines. Nous allons créer un répertoire pour Dotclear qui contiendra le moteur du blog lui-même, ainsi que tous les différents blogs hébergés.

  1. Rendez-vous sur votre Webmin : https://rxxxxx.ovh.net:10000/ (où rxxxxx est le nom de serveur fourni par OVH).
  2. Ouvrez le module OVHM (onglet OVH Virtual Hosting Managment)
  3. Cliquez sur Ajouter un domaine et complétez le formulaire suivant :

  • Nom de domaine : le nom de domaine que vous souhaitez utiliser pour dotclear (dans ce tutorial, on se réferera à domaine.org)
  • IP : Laissez l’IP par défaut, celle de votre serveur.
  • Mot de passe : Un mot de passe qui sera utilisé notamment pour MySQL et FTP.
  • Email de contact : Il apparaîtra pour les erreurs Apache. Mettez ce qui vous sied.
  • Quotas : L’espace que vous souhaitez allouer à vos blogs. Vous pourrez toujours le changer à l’avenir si ce n’est plus assez.
  • Accès telnet / ssh : Non (on utilisera l’accès root).
  • Créer une base Mysql : Oui ! On aura ainsi une base dédiée à Dotclear.
  • Version de PHP : PHP5, nécessaire pour Dotclear.
  • Mode verbeux : affiche des informations sur la page suivante, facultatif.
  • Login associé à l’hébergement : dotclear

Cliquez sur Créer, et OVHM va (entre autres) créer un répertoire dotclear dans /home/, une base de données intitulée dotclear, et configurer votre serveur DNS pour que domaine.org pointe vers /home/dotclear/www/. Cliquez sur Redémarrer tous les services (pour prendre en compte les changements) sur la page d’accueil de OVHm et OVHm va redémarrer Apache et BIND.  http://www.domaine.org devrait à présent pointer vers une répertoire vide.

Etape 2 : Installer Dotclear

Dotclear 2.x s’installe facilement grâce à un fichier d’installation automatisé. C’est l’étape la plus facile ! Mais il va falloir aussi activer le moteur InnoDB pour MySQL qu’utilise Dotclear, et qui n’est pas activé par défaut sur la Release 2 OVH. Ici je suppose que vous savez vous servir de SSH (avec un logiciel comme Putty) et de l’éditeur Vi. Si ce n’est pas le cas, je vous recommande cet excellent tutoriel sur alsacréations.

2.1 Télécharger Dotclear sur votre serveur

  1. Télécharger le fichier dotclear2-loader.php.
  2. Connectez-vous en FTP à votre nouvel hébergement (Hôte : rxxxxx.ovh.net, Utilisateur : dotclear, Mot de passe : celui que vous avez défini). Vous arrivez directement dans /home/dotclear/ sans qu’il soit possible de remonter.
  3. Uploadez le fichier dotclear2-loader.php dans le dossier /www/. Rendez-vous à l’adresse http://www.domaine.org/.
  4. Cliquez sur dotclear2-loader.php puis sur le bouton Retrieve and install Dotclear2 (laissez le champ Destination par défaut).
  5. Après quelques secondes (waouw !) Dotclear est téléchargé sur votre serveur. Cliquez sur Install Now.
  6. Remplissez le formulaire suivant pour permettre la connexion à la base de données.

Remplissez les champs comme indiqués ci-dessus, en remplaçant évidemment les étoiles par le mot de passe que nous avons défini plus haut (le même que le mot de passe FTP). Cliquez sur Enregistrer et là… patatra ! C’est le drame ! Dotclear refuse d’installer et vous rétorque : Le gestionnaire de stockage InnoDB de MySQL n’est pas disponible. C’est parce que, par défaut, le serveur MySQL fourni avec la Release 2 OVH est configuré pour utiliser uniquement le moteur MyISAM (le plus couramment utilisé) et pas le moteur InnoDB, nécessaire pour faire fonctionner Dotclear. Le moment est donc venu de plonger dans les entrailles de la bête pour…

2.2 Activer InnoDB pour MySQL

Rassurez-vous, la procédure est assez simple. Il suffit de vous connecter en SSH à votre serveur et d’éditer le fichier /etc/mysql/my.cnf.

  1. Créez une copie de sauvegarde du fichier my.cnf (on n’est jamais trop prudent) avec la commande cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
  2. Entrez la commande vi /etc/mysql/my.cnf pour éditer le fichier my.cnf
  3. Recherchez la ligne skip-innodb (en tapant par exemple /skip) qui empêche l’initialisation de InnoDB
  4. Appuyez sur la touche i (pour entrer en mode édition) et ajouter un # en début de ligne pour que l’instruction soit ignorée.
  5. Appuyez sur échap (pour sortir du mode édition) puis entrez :wq pour enregistrer et fermer le fichier.
  6. Redémarrez votre RPS avec la commande reboot. Attendez quelques secondes que la machine ping à nouveau. InnoDB est activé !

2.3 Terminer l’installation de Dotclear

  1. Reprenez l’installation où vous en étiez : Dotclear devrait réussir à se connecter à la base de données et à créer le fichier de configuration.
  2. Sur la page suivante, entrez les informations nécessaires pour la création du premier utilisateur. La base de données est créée.
  3. Cliquez sur Gérer votre blog. Vous voici à présent dans l’interface d’administration. Dotclear est installé et un blog par défaut à été créé !

Etape 3 : Créer un blog

Maintenant que Dotclear et son interface d’administration sont installés (ainsi qu’un « premier blog » de démonstration), nous allons pouvoir passer à la création de notre premier blog (sobrement intitulé blog1 dans cet exemple). Vous pourrez répéter l’étape 3 à chaque fois que vous voulez ajouter un nouveau blog, en remplaçant blog1 par ce qu’il vous plaira. L’idée est de créer pour chaque blog son sous-domaine blog.domaine.org et son repertoire public où seront stockés les médias (images, sons, etc.) afin qu’il n’y ait pas de confusion. Les themes, par contre, seront communs à tous les blogs.

3.1 Créer le sous-domaine du blog

Pour cela, on retourne sous Webmin et son module OVHm : https://rxxxxx.ovh.net:10000/

  1. On affiche la Liste des domaines gérés par OVHM en cliquant sur le lien éponyme, puis on clique sur notre domaine.org
  2. En passant, on peut ici changer les mots de passe ftp et mysql. Mais ce qui nous intéresse, pour l’instant, c’est la création de sous-domaine, en dessous.
  3. On entre le nom de notre sous-domaine (blog1), on s’assure qu’on est bien toujours sur PHP5, on laisse l’IP par défaut, celle de notre serveur, on clique sur Ajouter.
  4. On n’oublie pas de Redémarrer tous les services depuis la page d’accueil d’OVHm pour que les modifications soient pris en compte.

Ce que va faire OVHm : créer un nouveau répertoire blog1 dans le répertoire /sd/ et pointer le nouveau sous-domaine blog1.domaine.org vers /sd/blog1/www/, tout simplement. Je ne sais pas pourquoi les sous-domaines sont stockés dans un sous-répertoire /sd/blog1/www/ et pas dans un répertoire /blog1/ au même niveau que /www/. Personnellement, je préfère cette dernière méthode qui me paraît plus claire et plus propre, mais cela oblige à modifier « à la main » (sans passer par ovhm) la configuration d’Apache. Bref, ce n’est pas le sujet.

A présent, l’adresse http://blog1.domaine.org/ devrait pointer vers un répertoire vide, où nous allons maintenant installer notre nouveau blog blog1.

3.2 Créer le blog dans l’interface Dotclear

On retourne à présent dans l’interface d’administration Dotclear que l’on vient d’installer.

  1. Dans le menu de gauche : Système > Blogs > Créer un nouveau blog
  2. On remplit le formulaire comme ceci :

… et on clique sur enregistrer. Voilà, le nouveau blog blog1 est créé dans la base dotclear ! Sur la page suivante, vérifiez simplement que le champ Méthode de lecture de l’URL est bien sur PATH_URL (valeur par défaut depuis Dotclear 2.0) et non sur QUERY_STRING.

3.3 Créer le répertoire du blog sur le serveur

Si vous avez essayé de vous rendre sur http://blog1.domaine.org/index.php/ vous avez eu une erreur. Ce serait trop simple !

  1. Via FTP, téléchargez le fichier /www/dotclear/index.php sur votre ordinateur et éditez-le.
  2. Remplacez la ligne 19 : define(‘DC_BLOG_ID’,’default’); par : define(‘DC_BLOG_ID’,’blog1′);
  3. Remplacez la ligne 22 : require dirname(__FILE__).’/inc/public/prepend.php’; par : require ‘/home/dotclear/www/dotclear/inc/public/prepend.php’;
  4. Enregistrer le fichier et téléchargez vers le serveur dans : /sd/blog1/www/index.php
  5. Tant que vous y êtes, créez un répertoire /sd/blog1/www/public où seront stockés les médias du blog blog1.

3.4 Achever la configuration du nouveau blog

On retourne sous l’interface d’administration du blog : http://www.domaine.org/dotclear/admin/

  1. Commencez par sélectionner Blog Un dans le menu déroulant en haut à droite.
  2. Dans le menu de gauche : Extensions > about:config. Cette extension vous permet de modifier directement la plupart des variables de configuration de Dotclear sans garde-fou. A manier avec précaution !
  3. Assurez-vous que vous êtes bien sur l’onglet paramètres du blog et non sur paramètres globaux.
  4. Modifiez le champ public_path pour : /home/dotclear/sd/blog1/www/public
  5. Modifiez le champ themes_path pour : /home/dotclear/www/dotclear/themes/
  6. Modifiez le champ public_path pour : http://www.domaine.org/dotclear/themes
  7. Rechargez votre blog1 : http://blog1.domaine.org/index.php/ : Ca fonctionne !
  8. Vous pouvez à présent supprimer le blog « Mon premier blog » depuis Système > Blogs

Vous avez à présent un blog fonctionnel que vous pouvez alimenter depuis l’interface d’administration. Si vous voulez importer un blog Dotclear 2.0 créé sur un autre hébergement, c’est le moment de le faire : les billets de votre ancien blog seront importés dans blog1 mais les modifications que nous venons de faire seront conservées. Pour créer ou importer d’autres blogs, répétez les étapes 3.1 à 3.4 en remplaçant blog1 par ce que vous voulez !

Etape 4 : De jolies URLs avec Multiviews

La dernière étape, tout à fait facultative, consiste en une manipulation des directives Apache pour avoir de plus jolies URLs pour vos blogs Dotclear. Par défaut, pour des raisons de compatibilité, les urls de vos blogs seront du type : http://blog1.domaine.org/index.php/post/2009/03/28/I-love-Dotclear ce qui, vous l’avouerez, n’est pas très sexy. Grâce à cette méthode, vous allez pouvoir facilement supprimer ce index.php/ disgracieux et obtenir des URLs du style http://blog1.domaine.org/index/… voire http://blog1.domaine.org/x/ où x peut être ce que vous voulez. Certains conseillent l’utilisation de l’URL Rewriting mais je ne le recommande pas : c’est assez compliqué à mettre en place et assez lourd pour le serveur.

L’option Multiviews permet à Apache de renvoyer un fichier /index.html, /index.jpg ou /index.php si le fichier /index est demandé (et qu’il n’existe pas). Souvent activée pour les hébergements mutualisés (notamment chez OVH), cette directive est désactivée par défaut dans Apache et donc dans la Release 2 d’OVH. On peut l’activer simplement via un fichier .htaccess à placer dans le répertoire /home/dotclear/ et qui contiendra les deux lignes suivantes :

Options MultiViews
MultiviewsMatch Any

Options Multiviews sert tout simplement à activer l’option (elle doit être activée explicitement, c’est-à-dire qu’elle n’est pas activée par un Options All). MultiviewsMatch Any sert à indiquer à Apache qu’il doit également prendre en compte les extensions .php (par défaut, les extensions correspondants à des handlers sont désactivés).

A noter que l’option vaut pour tous les sous-répertoires (et donc tous nos sous-domaines). En cas de besoin, on peut désactiver ponctuellement pour un répertoire (et ses répertoires enfants) avec un fichier .htaccess disant : Options -Multiviews.

On a maintenant un beau blog avec des URLs du type http://blog1.domaine.org/index/… Pour obtenir autre chose que /index/, il suffit de copier le fichier index.php en un nouveau fichier qu’on appellera par exemple blog.php (pour une url en /blog/) ou ce que vous voulez (par exemple un n.php pour le présent blog).

Conclusion

Et vous voilà à présent propriétaire d’une belle plateforme de blog sous Dotclear sur votre RPS ! En espérant que ce tutoriel puisse vous aider à résoudre en quelques instants des casse-têtes qui m’ont pris plusieurs heures (notamment ce fichu MultivewsMatch Any) N’hésitez pas à me faire part de vos retours si vous avez suivi ce tutoriel, avec succès ou non !

7 réponses sur “Tutoriel : Installer Dotclear sur un serveur RPS OVH”

  1. dans le cas d’une vraie plateforme de blogs où les internautes créent leurs blogs et les sous-domaines se créent automatiquement, tu peux nous donner un tuto?

    merci

  2. Hmm, j’imagine qu’il faudrait créer une page d’inscription avec un script qui crée les répertoires, et modifier les fichiers hosts qui vont bien. Je n’ai pas ça à la main (je ne suis même pas sûr de savoir comment faire, faudrait que je fasse quelques recherches), mais promis si un jour je fais ça, je le mettrais en ligne !

  3. Salut.

    J’ai une autre solution en ce qui concerne innodb. Il suffit (avant l’installation) d’éditer le fichier dotclear/admin/install/check.php .
    Cherchez
    @@if (!$innodb) {
    $err = __(‘MySQL InnoDB engine is not available.’);
    }@@

    et remplacez-le par
    @@/*if (!$innodb) {
    $err = __(‘MySQL InnoDB engine is not available.’);
    }*/@@

    Normalement, ça fonctionne impec (j’ai testé cela avant).

  4. Hmm oui sauf que cette manip empêche la vérification qu’InnoDB existe mais ne résouds en rien le problème. J’imagine que si cette vérif existe, c’est que Dotclear a besoin d’InnoDB pour fonctionner et donc que c’est plus prudent d’activer le moteur…

  5. Bien joué le coup du MultivewsMatch Any !
    Tout fonctionnait chez mon hébergeur avec dotclear, et d’un coup le site se retrouvait ds les choux car le multiviews ne fonctionnait plus !
    J’ai rien compris jusqu’à trouver cette fameuse ligne à rajouter dans le htacess 🙂

Répondre à Clément Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *