Passer de dotclear 1.2 à dotclear 2 sans problèmes

Alors allons y méthodiquement.

S’assurer que le serveur supportera bien le nouveau dotclear

En effet, le nouveau dotclear a quelques exigences en terme de versions de PHP et de la base de donnée à utiliser. Donc pour commencer, j’ai crée un répertoire qui sera mon répertoire racine pour le blog, dans lequel j’ai placé un fichier phpinfo.php contenant:

<?php phpinfo(); ?>

De cette manière je pouvais contrôler la version accessible dans ce répertoire. Le premier problème fût que la version par défaut de PHP soit la version 5 et non pas la version 4.4 tel qu’elle est par défaut. Pour ça, dans le même répertoire j’ai ajouté un petit fichier nommé .htaccess contenant:

SetEnv PHP_VER 5
mod_gzip_on Off

Ces lignes permettent de forcer la version de PHP utilisée à la racine de ce répertoire. Le second problème fût le problème de la base de donnée qui dans mon cas devait être une MySQL version 5. Pour ça le problème a été réglé par mon fournisseur OVH chez qui j’ai pu créer une nouvelle base de donnée de la bonne version.

Me voilà donc prêt à installer dotclear 2, tous les éléments sont rassemblés.

Backup de mon ancien blog

Avant de faire quoique ce soit je voulais être certain de ne pas prendre de risque de pertes de donnée. J’ai donc d’abord fait un backup ftp. C’est à dire que j’ai copié tous les fichiers contenus physiquement sur mon serveur dans un répertoire local de mon ordinateur. De manière à toujours pouvoir récupérer tous les fichiers qui sont dedans. En particulier toutes les images.

Pour ce qui est du contenu des bases de données, j’ai installé l’extension flatexport qui permet d’exporter le contenu des bases de données crées par dotclear 1.2 dans un format importable par dotclear 2. En effet, certaines choses ont changée et il est important d’utiliser ce plugin pour faire l’exportation. Sinon vous ne parviendrez pas à récupérer les données.

Le plugin à installer dans dotclear 1.2:

Après l’exportation je me retrouve donc avec un fichier dotclear-backup.txt avec une structure différents des autres backup. Mais peu importe, garder ce dernier fichier bien précieusement. Il sera utile à l’installation de dotclear 2.

Mise en place de la nouvelle architecture

D’abord il a fallu télécharger la dernière version de dotclear disponible sur http://preview.dotclear.net/wiki/Do…

Ensuite il faut configurer le fichier /inc/config.php en fonction des caractéristiques de votre serveur. Pour ça je vous renvoie au wiki de dotclear: http://doc.dotclear.net/2.0/adminis…

Bon, alors maintenant passons aux choses plus sérieuses. En effet, contrairement à l’installation par défaut, moi mon but était de faire apparaitre le blog dans un sous-domaine particulier. En l’ocurence http://blog.theclimber.be. Donc dans mon fichier config.php j’ai bien stipulé que la base de mon site était http://blog.theclimber.be et non pas http://www.theclimber.be/dotclear/.

J’ai donc d’abord redirigé le répertoire /dotclear/ dans le sous-domaine blog.theclimber.be de manière à pouvoir avoir accès au site au bon endroit. Ensuite passons à l’installation proprement dite, on peut aller sur le lien http://blog.votresite/admin/install/ (si vous avez fait comme moi pour le sous domaine) pour l’installation et la création des bases de données.

Vous pouvez maintenant créer votre login et mot de passe administrateur. Prenez soin de le noter !!

Une fois que c’est fait vous pouvez vous connecter à l’interface d’administration de dotclear 2: http://blog.votresite/admin. Il est maintenant important si vous avez fait comme moi un sous-domaine redirigeant vers votre site de le spécifier dans la configuration de votre site. Pour cela allez dans about:config. Là vous avez le lien vers le répertoire /public/ qui est votre répertoire d’images et de fichiers par défaut. N’oubliez par de corriger l’adresse qu’y s’y trouve et de remplacer /dotclear/public/ par /public/ tout court. (attention, cette remarque ne vaut QUE si vous fonctionnez avec un sous-domaine)

Passons à la récupération du contenu des bases de données

Pour cette étape-ci, ce n’est pas très compliqué. En gros, vous avez votre fichier dotclear-backup.txt que vous avez obtenu en exportant votre blog dotclear 1.2 avec le plugin dont je parlais plus haut. Donc il vous suffit d’aller dans l’interface d’administration de votre fraichement crée dotclear 2. Vous cliquez sur Import/Export et vous faites « importer un blog ».

Le tour est joué.

Récupération des images.

Voici un point qui m’a donné un peu de fil à retordre car les solutions que j’avais trouvées sur le net n’étaient pas claires ou bien ne marchaient tout simplement pas.

Pour commencer, comme vous vous en doutez, il faut importer par FTP toutes les images de l’ancien blog vers le nouveau blog. Mais ô surprise, il n’y a plus de répertoire /images/ comme dans dotclear 1.2 … alors que faire? En effet, le nouveau répertoire de fichiers est maintenant appelé /public/. Alors voici comment j’ai fait:

  • J’ai crée un nouveau répertoire /public/img/ (notez bien que je n’ai PAS fait un répertoire /public/images … ce serait une erreur qui empêcherais la suite de fonctionner correctement)
  • J’ai importer tout le contenu de mon répertoire /images/ de dotclear 1.2 dans le nouveau répertoire /public/img/
  • J’ai crée un répertoire /images/ à la racine
  • Et maintenant l’astuce: dans le répertoire /images/ à la racine je n’ai placé qu’un seul petit fichier magique. Un fichier .htaccess contenant la ligne suivante:
RedirectMatch permanent /images/(.*)$ http://blog.theclimber.be/public/img/$1

Cette ligne permet de rediriger tous les liens pointant dans /images/ dans /public/img. Alors vous vous demandez dans doute pourquoi ne pas avoir crée un répertoire /public/images/. La raison est simple (quoique je ne crois pas que ça pose un réel problème, mais autant éviter de prendre des risques) c’est pour éviter de créer une boucle infinie. Si je dit que le répertoire /images/ doit être remplacé par /public/images/ il va le faire indéfiniment et on va se retrouver avec un répertoire /public/public/public/public/…/public/images/ ce qui serait assez gênant.

Problème des liens morts

Un autre problème maintenant que vous avez un beau dotclear 2 qui fonctionne à merveille, mais vous avez remarqué que la structure des liens dans dotclear 2 n’a absolument rien à voir avec la structure des liens dans dotclear 1.2. C’est en effet problématique car tous les anciens liens qui pointaient vers votre site seront maintenant obsolète. Ne paniquez pas, ce problème peut se régler facilement.

Reprenez le fichier .htaccess se trouvant à la racine de votre répertoire de blog (pas celui qui se trouve dans /images/) et voici ce que vous devez y ajouter:

RedirectMatch permanent /index.php/([0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9]+.*)$ http://blog.theclimber.be/index.php/post/$1
RedirectMatch permanent /rss.php$ http://blog.theclimber.be/index.php/feed/rss2$1

La première ligne corrige la nouvelle structure des liens. La seconde ligne corrige la structure des flux RSS qui ont désormais aussi changé. Le petit fichier rss.php n’existe plus et a été remplacé.

Conclusion

Voilà, j’espère que cet article aura pu vous éclairer un peu sur la façon dont vous pouvez vous y prendre pour passer de votre blog dotclear 1.2 à la nouvelle architecture dotclear 2. Je vous recommande chaudement de faire ça à un moment ou vous avez le temps de vous poser et de le faire à votre aise. Ce n’est pas spécialement compliqué lorsqu’on a les idées bien claires dans la tête, mais il est toujours préférable de prévoir un peu plus de temps, quitte à pouvoir peaufiner par après. Il n’y a rien de plus frustrant qu’un blog qui est en chantier et que vous n’avez pas le temps d’y remédier.

De plus, si vous avez des questions ou des problèmes, n’hésitez pas à en faire part en commentaire de ce billet. Je ferais ce qui est en mon possible pour vous donner un coup de pouce.