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.

Un commentaire

  1. Bonjour,

    Pour ton point : « Mettre un formulaire de contact pour qu’on puisse m’envoyer des mails sans connaitre mon adresse », j’ai vu qu’il existe un plugin contact pour DC2.
    Voir sur le forum 😉

    Reply
  2. Merci pour cette exposé bien fait, pour moi qui n’y connait pas grand chose en code. J’ai installé, à l’aide de Mamp dc2 en interne sur mon mac. Tous c’est bien passé, sauf pour les images. Le .htaccess n’a pas l’air de marcher, et je n’arrive pas à récupérer mes images sur DC2. A noter que sur le site originale, j’avais créé des sous dossier dans images ce qui donne comme liens images/photos07, par exemple. J’ai recréé ses sous dossier dans le dossier « public » de dc2 et modifié le .htaccess comme suis:  » RedirectMatch permanent /images/photos07/(.*)$ http://localhost:8888/dotclear/publ…  » mais cela ne marche pas. alors soit cela n’est pas bon, soit je n’est pas placé le dossier image ou il faut, soit… ben je cale… Si tu à une bonne idée pour moi qui sortis du HTML basic suis nul en php…
    Merci

    Reply
  3. Salut,

    Pour les sous-dossiers, si tu veux que ça marche, tu ne dois pas les créer dans le répertoire /images/ mais dans le répertoire /public/img/ par exemple. Donc dans le répertoire /images/ tu n’as qu’un seul fichier, c’est le fichier htaccess qui redirige toutes les url qui pointent vers là dans /public/img/ et normalement ça devrais suffire, même pour les sous-dossiers de images/

    Personnellement je n’ai mis aucun fichier .htaccess dans le répertoire public, à mon avis c’est une mauvaise idée car justement tu risques de créer des boucles infinies dans ce cas là.

    essaye comme ça … sinon explique moi plus précisement l’erreur que ça te donne?

    A+

    Reply
  4. Merci de t’occuper de mon cas 😉
    Pour êtres plus précis, voici la structure du blogue DC1 pour les images actuelement en ligne sur le net: …/images/photos07 (et photos06)
    DC2 à été installé sur mon G5 via MAMP et l’adresse est:
    http://localhost:8888/dotclear/inde
    Physiquement cela donne Applications/MAMP/htdocs/dotclear…
    Sur dc2, j’ai fait comme tu a dit, un dossier img qui se trouve:
    dotclear/public/img et j’ai créé un dossiers images que j’ai placé:
    …htdocs/images (j’ai aussi fait un essais en le plaçant dans le dossiers dotclear. Si avec DC2, je créé un billet avec une image, celle si se trouve:
    http://localhost:8888/dotclear/publ
    Dans le dossier images j’ai donc mit le .htaccess ecrit comme suis:
    RedirectMatch permanent /images/(.*)$ http://localhost:8888/dotclear/publ
    Aucun message d’erreur, juste que à la place de l’image, j’ai un beau point d’interrogation sur Safari et si je regarde dans la fenêtre activité de safari, il me dit simplement que l’image est introuvable.
    Mais je me demande si le problème ne vient pas du faite que je suis sur un serveur local…
    Merci pour ton aide en tous cas…

    Reply
  5. Oui, ok j’y vois déjà un peu plus clair.

    A tout hasard, est-ce que tu as suivi l’étape ou je dit de mettre un htaccess dans le dossier racine de dc2? Car dans ton cas, ça devrais déjà marcher sans ce dernier. J’ai en effet aussi rencontré quelques problèmes avec ce htaccess là.

    Sinon je t’avoue que j’ai l’impression que ta configuration est bonne. Peut-être aussi que htaccess ne fonctionne pas correctement sur MAMP ou qu’il n’est pas configuré par défaut. Pour le savoir tu peux simplement essayer d’aller sur l’url http://localhost:8888/dotclear/imag… et voir s’il te redirige bien correctement vers /public/img

    Voilà déjà quelques pistes

    Reply
  6. Merci de ton aide. Effectivement je tombe juste sur le dossier images, sans redirection. Je pense effectivement que le prob vient du faite que je soit en serveur local. On verra bien quand je mettrais en ligne, mais pour cela j’attendrais la version final… Dommage, qu’il n’est pas prévus un dossier images dans la nouvelle version pour faciliter le transfert d’image. Mais on ne va pas raler, ils ont vraiment fait fait un gros boulot. manque plus qu’un pluging de stat, et je serais comblé 😉
    Encore merci pour ton aide…

    Reply
  7. Salut, je vient de me taper la lecture en gros des 10 pages sur le forum dotclear sur la passage à DC2 (http://www.dotclear.net/forum/viewt…) et ton billet répond pas mal à mes questions. sauf peut-être un petit détail : est-ce le .htaccess que tu propose pour les liens va fonctionner aussi pour moi si mon blog est en query_string (en fait, j’imagine que non… la vraie question étant : puis-je simplement changer index.php/ par index.php? ) ?

    Reply
  8. Tant mieux si t’as réglé ton problème tout seul 🙂

    Mais donc si d’autres passeraient et se poseraient la même question, bien sur que tu peux modifier le « index.php/ » par « index.php? ». Mon htaccess ne prend que un seul exemple mais fonctionne normalement dans les 2 cas.

    Reply
  9. Merci pour les infos mais j’ai déjà trouvé mon bonheur 😉

    Pour la page de contact j’ai en effet le plugin « contact » pour dc2 qui fonctionne parfaitement.

    Pour les statistiques j’utilise phpMyVisites qui fonctionne parfaitement aussi, et ça m’évite d’utiliser Google … j’aime bien être autonome 😉

    Reply
  10. Passage à Dotclear 2 chapitre 1

    Voilà, j’ai enfin fait le grand saut !!Mon blog vient subitement de passer de la version 1.2.5 à la version 2 beta 6J’ai pas terminé tout le travail mais là ça va être assez pour ce soir. Je vais noter l’avancée de mes travaux dans ce billets et…

    Reply
  11. Bonjour Greg, c’est encore moi

    j’aimerais amélioré le htaccess de redirection de mon blog pour aussi tenir compte des adresses des archives qui semblent avoir changé… En regardant mes stats dernièerements, j’ai constaté que plusieures pages indexées par google (ma plus grande source de visiteurs) pointent vers des pages comme http://www.cybercarnet.net/index.php/2007/04/p2 mais sur DC2 il n,ya seulement lune page d’archive par mois donc il faudrais rediriger vers http://www.cybercarnet.net/index.ph

    en même temps je me dis que ça pourrais aussi t’être utile !!

    Reply
  12. Pour mon blog je ne pense pas que ça soit nécessaire car Google a déjà ré-indexé mon site depuis longtemps donc les liens mort ont disparus. Pour ton problème je ferais de la manière suivante dans mon fichier htaccess :

    RewriteRule index.php/([0-9]*)/([0-9]*)/([0-9]*)$ http://www.cybercarnet.net/index.php/archive/$1/$2

    Je t’avoue que je n’ai pas testé donc je ne suis pas sur de ce que j’écris … mais je me suis basé sur la page suivante pour ça : http://www.kachouri.com/tuto/tuto-9

    Donc le concept est simplement d’ajouter le mot « archive » dans l’URL et d’enlever la dernière partie de l’URL qui n’est plus gérée dans DC2.

    Peux-tu me faire un feed-back pour me dire si ça marche (je n’ai malheureusement pas le temps de tester chez moi)

    Merci d’avance et en espérant avoir pu t’aider.

    Reply
  13. wow cool, avec juste une petite modification j’ai réussi à le faire fonctionner (merci pour la référence, maintenant je comprend mieux comment ça marche ;-))

    voilà donc ce que j’ai ajouté à mon htaccess:

    RewriteEngine on
    RewriteRule index.php/([0-9]*)/([0-9]*)/([a-z0-9]*)$ http://www.cybercarnet.net/index.php/archive/$1/$2

    car à la fin c’est p2 qui est à remplacer donc c’est une chaîne contenant une lettre et pas que des chiffres 🙂

    Reply
  14. Merci pour ta correction. C’est vrai que j’avais pas pensé jusque là. Mais je suis content si ça marche alors ! 😉 Et au cas où j’ai à nouveau une question du genre ça sera plus facile pour moi d’y répondre 🙂

    Reply
  15. Bonjour,

    Merci beaucoup pour ce billet bien détaillé, il m’a permi de migrer mon dotclear 1.2.5 sur 2beta6, mais j’ai voulu suivre la même procédure pour un second blog, et là Damned !

    Que néni. Lors de l’import de mon fichier de sauvegarde sur dc2, l’import se fait bien en bdd, mais aucun billet n’apparait dans mon panneau d’admin, et les titres ne sont pas importés !

    Quelqu’un aurait-il été confronté au problème ? Ou aurait une piste ou une solution ?

    Merci d’avance, je continu de chercher de mon côté 🙂

    Reply
  16. Oups … en ce qui concerne la cummulation de blog sur dc2 je t’avoue que je n’ai pas trop cherché à comprendre comment ça marche donc je peux pas trop t’aider. Chez moi ça fonctionne pour 1 blog… j’ai pas été voir plus loin.

    Mais si tu trouves une réponse à ton problème ailleurs sur le net, n’hésite pas à poster le lien ici dans les commentaires. 😉

    Reply
  17. Ah ben merci bien ! Depuis le temps que je cherchais une VRAIE explication de mise à jour dotclear 1 à 2.

    Même le site officiel est pas capable d’en fournir une correcte !

    Merci beaucoup beaucoup beaucoup ! 😉

    Reply
  18. Bonjour, déjà merci pour ton article 🙂

    Toutefois j’ai un petit problème, je cherche à résoudre le problème des liens morts…

    J’ai donc créé un fichier .htaccess à la racine du blog (car il n y en avait pas) et rentré cette ligne :
    RedirectMatch permanent /index.php?([0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9]+.*)$ http://localhost/gl/index.php?post/

    Cependant, cela ne fonctionne toujours pas…est-ce normal ? (est-ce normal que j’ai du créer un fichier .htaccess ? est-ce bien à la racine du blog qu’il faut le mettre ?)

    merci d’avance pour ta réponse 🙂

    Reply
  19. Alors, j’ai un début de réponse 🙂
    En fait ce sont les « ? » qui posent problème, en effet, ils ne sont pas interprétés « littéralement », et même avec un «  » devant, cela ne marche pas :'(

    Reply
  20. Bonjour, j’arrive 2 ans plus tard avec la même question pour les liens morts.

    J’ai créé moi aussi un .htaccess à la racine mais je me retrouve toujours avec 2 urls différentes :
    [http://www.magicfred.com/index.php?post/2008/02/27/3-a-propos-de-frederic-smyczynski-alias-magicfred] qui est la nouvelle avec un « ? » après index.php et
    [http://www.magicfred.com/index.php/post/2008/02/27/3-a-propos-de-frederic-smyczynski-alias-magicfred] qui est l’ancienne avec un « / » après index.php. Cette dernière ne fonctionne évidement pas.

    Si quelqu’un me lit et qu’il a la solution, je suis preneur ! Merci 🙂

    magicfred@gmail.com

    Reply

Leave a Comment.