Pages Navigation Menu

Luxe, Lifestyle, Mode, Déco, Design, High-Tech

Récupération et réparation d’un WordPress

Récupération et réparation d’un WordPress

Suite à un problème dû à une mise à jour, le WordPress d’un ami, hébergé sur notre serveur, a posé des difficulté. La mise à jour a produit de nombreuses erreurs dans la base de données mais nous avions un backup … seul problème, postant de nombreuses photos par jour, le backup faisait 7Go et un fichier si volumineux générait des erreurs au décompactage (plus gros que la limite du système de fichier de l’ordinateur servant à récupérer les données).

Ce n’était pas un problème en ce qui concernait les fichiers, mais le fichier contenant la base de données ne pouvait être extrait … il a donc fallut ouvrir ce fichier dans l’archive et il semble que cette possibilité ait éliminé tout l’encodage UTF8.

Résultat des courses, plusieurs heures de rectification des caractères unicodes brut et plusieurs heures de patience pour le reste (si vous n’avez pas l’habitude de ce genre de manipulation, réservez-vous de nombreuses heures ou étalez ce travail sur quelques jours).

La base de données rectifiée et réimportée avec succès, il était impossible de s’enregistrer en administrateur sur le site (vous n’avez pas les droit suffisant …). Lorsque ce problème arrive, une seule solution, passer par un ancien script qui force l’update de wordpress. Le site était de nouveau online (avec quelques bug de la part de Disqus, vu que l’archive avait une semaine et que des articles avaient été perdus).

Enfin dans l’administration du site, de nombreux plugins causaient des problèmes … afin de récupérer le site à 100% opérationnel, nous avons réinstallé un wordpress propre dans un nouveau vhost avec une nouvelle base de données. A partir de là, voici quelques étapes à respecter afin de remonter une version de votre site :

1. Stopper tout travail de rédaction sur le blog en production ayant des problèmes.

2. Effectuer un export complet de votre wordpress au format xml (module d’export de wordpress).

3. Utiliser Gzip (.gz) pour compresser ce fichier.

4. Récupérer dans votre wp-content votre template et vos plugins et uploader les dans le répertoire du nouveau site.

5. Activer votre template et les plugins (le minimum, ceux qui ne concernent pas la sécurité ni la manipulation de fichiers).

6. Effectuer un backup de la base de données du nouveau site, elle vous servira de base en cas de problème afin de rapidement remettre une db saine pré-import des données (si ça plante, on supprime toutes les tables et on réimporte le backup sain).

7. Modifier votre php.ini afin que les scripts ne plantent pas :

max_execution_time = 3000
max_input_time = 3000
memory_limit = 180M

8. Importer ce fichier à l’aide de l’importeur incorporé à wordpress SANS les pièces jointes (sans le contenu de ce que vous avez dans votre dossier d’upload en somme et c’est très important si vous possédez un site comportant plusieurs centaines d’articles et milliers d’images).

9. Quand l’import de votre site sans les pièces jointes des articles est fini, installez le module Attachment Importer. En utilisant l’importeur de wordpress et en sélectionnant l’import des médias, premièrement ça prend un temps de dingue et quand j’avais la chance que ce script ne plante pas, les images n’étaient pas « liées » aux articles (impossible d’utiliser le plugin WP Media Cleaner qui permet d’éliminer les médias non-liés à qqch dans la base de données et ainsi regagner de la place).

10 . Utilisez le plugin Regenerate Thumbnails afin de régénérer vos miniatures.

11. A ce stade là, votre site doit avoir récupéré toutes ses informations, sauf si votre template n’avait pas d’options de stockage des images à la une … vous n’avez donc plus de featured image sur vos articles, mais on va résoudre ce problème. Installez le plugin Export Featured Images sur votre site de production, générer un export .xml des données proposées et importez ce fichier avec l’importeur de wordpress sur le site assaini !

12. Vérifier tous les articles pour vérifier si il n’y a pas d’autres problèmes (dans mon cas, l’UTF8 a causé pas mal de problèmes et je continue à rectifier des articles).

Ça y’est, vous avez une base saine pour réparer votre site de production, à vous de voir comment réintégrer le tout : backup du site assaini, réinjection des fichiers, modification de la base de données pour coller avec l’URL de production, réinjection de la db, etc … Moi j’utilise InfiniteWP avec le module payant de clonage/restauration de site web qui fait toutes ces tâches (il faut donc avoir son site sain sur une URL joignable sur le net).

Une fois le site restauré, il faut regarder si tous les articles sont corrects ! En ce qui concerne le site restauré, des balises de saut de ligne ont été ajouté en plein dans les balises d’affichage des images … alors, soit vous n’avez pas beaucoup d’article et vous allez rectifier tout à la main, soit vous êtes face à un monstre tentaculaire de plusieurs milliers d’images et vous pourrez utiliser, dans le config.php de template, placer la fonction suivante qui évitera de lire ces tags BR :

remove_filter( ‘the_content’, ‘wpautop’ ); remove_filter( ‘the_excerpt’, ‘wpautop’ ); function wpse_wpautop_nobr( $content ) { return wpautop( $content, false ); } add_filter( ‘the_content’, ‘wpse_wpautop_nobr’ ); add_filter( ‘the_excerpt’, ‘wpse_wpautop_nobr’ );

J’espère que cette marche à suivre pourra aider d’autres webmasters en difficulté.

 

Tags :

 
Alternative Text Historien de l'Art, Archéologue, Agrégé de l'Enseignement Secondaire Supérieur, Etudiant en techniques infographiques 3D, Webdesigner, photographe amateur et rédacteur principal de Pleasureblog, je suis passionné par le Design, la Décoration, l'Artisanat et les objets High-Tech.
  • c’est pourtant simple, ce sont des 0 et des 1 non ?
    courage… fuyons !

  • Fr@nk

    Une hantise ! J’aime pas ces mises a jour ou on ne peut faire de rollback !