Ca va faire des mois que j’y pense – et pas seulement quand je me rase : migrer ce blog vers WordPress ! J’avais commencé une petite liste patiemment annotée avec tous les petits trucs à prendre en compte avant de faire le grand sot saut (lapsus ?) Cette liste, je l’ai perdue… (Acte manqué ?). Je ne sais plus ce qui s’est passé exactement, mais une partie de mon esprit (celle qui avait envie de changement) a pris subitement le contrôle de l’autre partie (vous savez, celle qui remet toujours les choses au lendemain…). Bref, j’ai lancé la migration de mon blog sans trop me poser de questions existentielles :
Pour que cette migration s’effectue dans les meilleures conditions, j’ai suivi les indications données par Ced et celles présentes dans le fichier d’aide du plugin flatimport-addons (voir plus bas).
Installer WordPress 2.3
Je télécharge la dernière version de WordPress sur mon serveur dans mon nouveau répertoire /blog-reloaded et je suis la procédure d’installation qui prend normalement 2 secondes. Comme je commence par une installation de test, je décoche la case concernant l’apparition du blog dans les moteurs de recherche comme Google et Technorati (ok, ça rajoute un 1/10eme de seconde). Je changerai ça plus tard.
Une fois WordPress installé, je me connecte sans rien modifier pour l’instant car le script d’importation a besoin du premier billet présent lors de l’installation pour fonctionner !
Préparer Dotclear 1.2.5
J’installe le plugin pour exporter la base de données sous la forme d’un fichier texte à partir de Dotclear. Comme la structure de la base de données de WordPress a changé, une nouvelle version du plugin flatimport est nécessaire. Rendez-vous à l’adresse http://cvie.free.fr/public/flatimport.txt pour connaitre le plugin qui correspond à votre version de Dotclear : une procédure existe pour tous les cas de figure :
- pour Dotclear 1.2.3 à 1.2.6 : télécharger les suppléments flatimport (flatimport-addons)
- pour Dotclear 1.2.7 : télécharger le plugin flatexport du bricoland
les décompresser en utilisant Windows XP ou 7zip ou Winzip ou autres,
Télécharger sur le serveur le répertoire flatExport pour avoir dotclear/ecrire/tools/flatExport
Dans le panneau d’exportation, exporter votre base de données :
- aller à l’outil Flat file export
- cliquer sur Export my blog!
- sauvegarder le fichier blog-backup.txt sur votre disque local.
Bon, j’espère que vous n’êtes pas comme moi, parce que j’ai téléchargé le dossier complet dans /tools, et bien évidemment, ça ne fonctionne pas, il faut juste copier le dossier flatexport ^_^v (voilà ce que c’est de vouloir aller trop vite).
Je garde le fichier blog-backup.txt au chaud pour la suite.
Modifier les chemins d’images
Ensuite, il faut s’occuper des chemins pour les images présentes dans les billets, puisque la structure change. Pour ce faire, deux solutions s’offrent à nous : modifier le fichier blog-backup.txt avec un éditeur de texte qui enregistre en UTF-8 et abuser du chercher-remplacer, ou alors utiliser le fichier blog-backup-change.php qui permet d’opérer des modifications lors de l’importation finale.
Je choisi cette option. Le fichier en question est assez simple, puisqu’il faudra indiquer les anciens chemins et les nouveaux :
<?php # replacement strings for posts $post_old_strings = array( 'http://site_dc.free.fr/share/video', 'http://site_dc.free.fr/share/audio'); $post_new_strings = array( 'http://www.site_wp.net/public/video', 'http://www.site_wp.net/public/audio' ); # end of replacement strings for posts ?>
Lancer la procédure d’importation
La partie plaisante commence vraiment avec la dernière phase : la procédure d’importation du fichier blog-backup.txt dans la base de donnée wordpress qui n’attend que ça :
Télécharger le fichier blog-backup.txt dans le répertoire /wp-content/uploads.
Dans le panneau d’administration Gérer de WordPress :
- cliquer sur Importer,
- cliquer sur Dotclear flat import,
- cliquer sur le bouton Importer.
Normalement tout devrait bien se passer. Toutefois, si votre fichier est très gros, il sera nécessaire de réinitialiser la procédure d’importation qui est prévue pour pouvoir s’effectuer en plusieurs fois. Pas de panique, la documentation vous prendra par la main 🙂
Je clique maintenant sur Importer et… après quelques secondes le message End of import apparait, puis je clique sur Terminé !
Tout fonctionne. La procédure a même récupéré les tags du plugin twTags !
Un peu d’url rewriting…
Je me rends ensuite dans Options > Permaliens pour modifier la structure des url afin qu’elles soient identiques au format qui existait dans Dotclear, soit :
/index.php/%year%/%monthnum%/%day%/%post_id%-%postname%
Mais celà ne suffit pas car la procédure d’importation modifie les numéros qui identifient les billets, c’est bête, hein ? Pas de souci, car emich a trouvé une solution efficace : une pincée de RewriteRule dans un fichier .htaccess (chez phpnet.org, ça s’appelle htaccess.fi) à placer à la racine du blog.
(…ou pas)
Arghh! Apparemment mon hébergeur ne semble pas apprécier ce genre de fantaisie : le serveur me renvoie une erreur interne (allez, pour la peine je fais appel au support technique de phpnet.org).
Qu’à celà ne tienne, je ne vais pas me décourager pour si peu. Enfin, quand je dis si peu, c’est vite dit, car tous les liens qui pointent vers des pages de mon blog mènent désormais vers une page 404…
Encore heureux que WordPress offre la possibilité de faire une page 404 personnalisée grâce à la hiérarchie des templates : un coup de 404.php et hop, c’est partie !
Quoique, arriver sur une page 404 aussi belle soit-elle lorsqu’on s’attend à lire un tutoriel sur jQuery ou sur le détourage des cheveux avec Photoshop doit être assez décevant…
Redirection 302
Il me reste une solution : mon nom de domaine redirige les visiteurs vers le répertoire /blog grâce à la formule magique suivante :
<?php header("Status: 302 : object temporarily moved", false, 302); header("Location: http://www.css4design.com/"); exit(); ?>
La redirection 302 indique aux moteurs de recherche que le lien est dirigé temporairement à l’adresse spécifiée plus loin. De sorte que si je modifie la deuxième ligne par :
header("Location: http://www.css4design.com/blog-reloaded/");
Les visiteurs voulant afficher la page d’accueil du site seront redirigés vers la nouvelle version du blog. Cette solution est loin d’être la panacée :
- www.css4design.com/ bénéficie d’un PageRank de 6 alors que www.css4design.com/blog-reloaded/ est à zéro…
- en attendant que mon fichier htaccess fonctionne correctement, il y aura du contenu dupliqué (duplicate content) à revendre. Mieux vaut ça, que pas de contenu du tout,
- la moitié des backlinks pointant vers mon blog est du type www.css4design.com/
Conclusion express
Faire une nouvelle installation à côté de l’ancienne pour faire la transition en douceur, c’est bien. Ce qui l’est moins, c’est de s’apercevoir que dans la précipitation, j’avais aussi modifié les redirections des flux RSS chez Feedburner avant de m’apercevoir que la réécriture d’url ne fonctionnait pas pour l’instant : ceux qui sont abonnés à mon flux RSS ont pu lire le brouillon de ce billet, ce qui n’était pas voulu ^_^v
Bref, du coup, au lieu d’attendre que tout soit prêt, je vais continuer cette migration en direct live !
Pour ceux que ça intéresse, j’ai installé le thème Kubrick revisité par Sandbox 1.0 (dont voici la documentation en ligne). Que du reloaded, en fait 😉
Je vous tiens au courant de la suite des événements 😉
Bonjour, ceci est un commentaire. Pour effacer un commentaire, connectez-vous, et affichez les commentaires de cet article. Vous trouverez alors l’option permettant de le modifier ou l’effacer.
Punaise, ça semble galère, mais pour l’instant, la gestion des médias de WP2.3, mêmes avec le plugin qui va bien, ne me convient pas, DC2 reste encore mon préféré, la migration ce n’est pas encore pour tout de suite. Surtout que coté référencement, je viens de testé sur un nouveau blog sous DC2 un peu …. ben punaise, dès sa mise en ligne, en tête dans Google, devant des très gros sites américains pour des mots clés qui donne des millions de réponses, donc soit héberger chez free ça garantit un référencement de malade, soit la structure de DC2 est top, soit un lien bien placé dans mon blog vers ce site (c’est le seul lien qui pointe vers ce blog, référencé nul part) est là solution, soit le nom de domaine que j’ai cherché était vraiment le bon, soit, ben c’est tout ça, en tout cas si le trafic de ce blog de test augmente aussi vite, je vais pas tarder à lui mettre des adsenses de partout … parce que ce blog n’a d’intérêt que … euh pour … les célibataires ?? 🙂
Bienvenue dans le monde des « migrateurs » ! 😉
Le gros argument pour te motiver à migrer c’était SandBox par hasard ?!? Où juste une envie de changement ?
JCA > Ce qui est galère c’est surtout du côté de mon hébergement qui m’empêche de profiter du mappage des anciennes url vers les novuelles
burninghat > touché ! oui, c’est essentiellement SandBox qui m’a titillé. Le déclencheur a été la lecture de la documentation où je suis cité avec les autres membres du jury pour le Sandbox Designs Competition qui a eut lieu cet été 😉
Bienvenue dans le monde wordpress !
Bon courage Bruno pour cette migration, et bienvenu dans le monde merveilleux de WP ! Mais bon, tu connaissais déjà…
TRAITRE !!
Yeah! Copaing! 🙂
@Bruno : Nice one !
@Aymeric : Nice one ! xD
@Super Chinois : you know that ,)
@Bruno: me semblait bien en effet… Pis c’est plus cohérent maintenant vu que tu devais être le blog qui parlait le plus de WP en bien tout en étant propulsé par DC de toute la blogosphère 😉
Bravo Bruno.
Rha c’est chiant pour cette histoire de htaccess, en esperant que ca s’améliore.
Salut 😉 tu penses que ça marche aussi avec DC 1.2.2., j’ai été un mauvais élève, flatimport marche, je pose des questions sur le reste de la procédure
Bienvenue chez WP Bruno 😉
Bon courage pour la suite en tous cas 🙂
Merci à tous pour vos encouragements 😉 Pour le thème, j’ai adapté celui que j’avais fait pour Notorious Blog et j’en ai profité pour refaire le logo css4design : quitte à tout changer autant faire les choses jusqu’au bout !
Aymeric > Toujours copain ?
palpitt > D’après la doc il faut au moins la version 1.2.3 de Dotclear. Donc faire la mise à jour pour suivre la procédure (très bien expliquée) du plugin flatimport.
Tu fais bien pour le design, je le trouve nettement plus agréable/lisible que l’ancien même si ce dernier était déjà très beau. Et en plus d’être frais, ça crée une unité entre css4design et notorious blog qui est vraiment très agréable 😀
Maitnenant, critiquons un peu : peut-être que la colonne centrale est un tout petit peu étroite par rapport à la longueur « classique » de tes billets, vu ton design, ce ne serait pas possible de partir sur une solution plus élastique afin de ne pas se retrouver avec un rapport d’1 tiers texte / 2 tiers blancs sur un écran en 1280×800 (mon laptop). C’est une idée en l’air et c’est parce qu’il faut bien trouver quelque chose à dire pour critiquer afin de ne pas te faire « trop » d’éloges (c’est mauvais pour les chevilles parait :p)
Bien vu burninghat. Comme tu peux le voir, j’ai fais quelques modifs en tenant compte de tes observations concernant le largeur des billets. Du coup, j’ai supprimé la colonne de droite en réorganisant celle de gauche. C’est vrai que c’est beaucoup plus lisible maintenant 😉 Merci !
En revanche, j’ai laissé la largeur telle quelle sur la page d’accueil, vu qu’il n’y a que les chapô à lire.
Ah bah là « Wow » ! Superbe, plus rien à dire à part « merci d’avoir tenu compte de ma remarque » 😉
Ah ben non, merci à toi d’avoir partagé ton sentiment, ce qui m’a permis, en plus, de mettre en place un système de photo avec une légende sur le côté grâce à la largeur disponible. Ca faisait longtemps que j’y pensais… L’occasion fait le larron 😉
que c’est trè sagréable de lire ton blogh 🙂