La catastrophe

Ordinateur

Photo sous licence CC
Stephen Mitchell sur Flickr

Ce matin, histoire de pimenter un peu le dernier weekend avant Noël, je décide de régler un « petit » problème apparu subrepticement, l’erreur 500 sur la page d’accueil du domaine, qui, dans l’attente d’un site encore et toujours en cours de développement, renvoie pour l’instant sur ce blog. 

J’utilise une redirection php, basée « normalement » sur un script de détection de la langue (je dis bien « normalement », car pour l’instant aussi ce blog étant monolingue, toutes les langues renvoient ici).
J’étais – honte à moi – encore en php4 sur 1&1, et sur une version un peu ancienne de WordPress, une de celles qui auraient dues être upgradées depuis longtemps à cause de la faille de sécurité. J’ai un fichier htaccess à la racine, et un autre au niveau de WordPress, pour les redirections. 

Erreur 500, c’est ou bien le .htaccess, ou bien la base de données. Le problème, c’est que même en ayant remis les permaliens à la valeur de base dans WordPress, et supprimé les deux fichiers .htaccess, je n’arrivais, au mieux, qu’à avoir une page blanche sur l’accueil du nom de domaine, la redirection php plantait, quand à WordPress, il était en erreur 500. J’avais donc déplacé le problème sur la partie du site la plus importante.

Evidemment, le passage à php5, qui pour moi se fait en rajoutant dans le fichier .htaccess
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
ne résolvait pas mon problème. 

Dans ce cas là, on passe à la solution réinstallation, ce fut ma deuxième erreur.
Parce qu’au lieu de recharger la bonne version de wordpress, j’ai rechargé la 2.8.1, et hop…. une mise à jour de la base de données qui se lance, et crac, erreur 500, même sur l’admin.

Ça devenait grave.
C’est devenu désespéré quand je me suis rendue compte que :

  1. les problèmes de serveur avaient empêché la création des sauvegardes automatiques de la base par le plugin wp-dbbackup
  2. suite au crash d’un portable récalcitrant il y a quelques semaines, j’avais perdu mes back ups anciens

Je me retrouvais donc avec un site totalement non fonctionnel, une « mise à jour » en cours de route, mal finie, et aucun accès à l’admin.

En regardant la table wp-options, pour essayer de trouver ce que je pouvais supprimer, j’ai trouvé une nouvelle série de valeurs, des « _transient_rewrite_rules » qui apparemment n’existaient que pour Wp mu, et sont maintenant standard, dans la 2.9
Une petite recherche indiquait un bug, « transient rewrite rules can become too long, causing mysql errors », et une solution qui ne m’est pas accessible sur un mutualisé, d’augmenter la taille des paquets mysql.
Ma table wp-options était d’ailleurs assez grosse, encombrée de tests, essais, etc… 

Le retour à la santé

La première étape a été de refaire une install toute neuve toute propre de wordpress, tant qu’à faire la toute nouvelle version 2.9, traduite en français pendant la nuit par l’équipe wordpress francophone.
Avec dans le fichier wp-config un préfixe de base différent, ce qui me permettait de garder mes vieilles tables. 

Ça marchait… pas très bien, page admin presque vide, par exemple, mais ça marchait.
Deuxième étape, réinstaller l’option de permalien, passer en php5 dans le .htaccess de wordpress, et remettre en place la redirection à la racine du domaine. 

Ça marchait très bien.
A la base, php5 était bien à l’origine de tous mes problèmes

Troisième étape, comment repasser d’un blog « Hello World » au contenu actuel ?
Après une rapide sauvegarde, je me suis aperçue que la solution la plus simple consistait à changer les noms des tables, de toutes les tables sauf wp-options (parce que là, ça recommençait à ne plus aller)

J’avoue que je ne saurai jamais ce qui trainait de moche dans cette table…. l’essentiel est que cela fonctionne.
J’ai donc re-paramétré les options à la main, en regardant pour mémoire, leur valeur dans l’ancienne table wp-options. 

Bilan du passage sur la 2.9

Si j’avais eu un blog nickel, je pense que la mise à jour se serait passée sans aucun problème.
Si j’avais eu des sauvegardes à jour, j’aurais eu moins de stress … mais je serais sans doute repartie sur la version « ancienne et à problème », car la manip constituant à recréer mon blog en changeant les noms des tables était quand même un peu douteuse.
Elle n’a fonctionné que parce que le changement de structure de la base avait été fait lors du premier upgrade vers la 2.8.1 Cependant, si cela n’avait pas été fait, WordPress m’aurait à nouveau proposer de faire une mise à jour de la structure des tables

L’upgrade de All In One SEO a été une mauvaise surprise

All In One reprend la nouvelle fonctionnalité de WordPress, le rel canonical pour les urls (ce qui permet de supprimer pas mal de problèmes de duplicate content). 

… mais, mais…
il faut là aussi faire une mise à jour de la structure des tables, et une fois qu’elle est faite, les valeurs personnalisées que j’avais rentrées pour mes titles et mes descriptions étaient remises à zéro. 

Heureusement, un petit coup d’oeuil à l’ancienne table wp-options m’a permis de retrouver les anciennes valeurs. Aucune envie de chatouiller google avec un changement global de titles sur l’ensemble du site. 

Simple Tags ne fonctionne pas avec cette version de WordPress

Mais si …
Là il s’agit simplement d’un contrôle de version codé en dur (hard coding is evil), pour le bypasser, il suffit d’éditer le plugin et de rajouter
|| strpos($wp_version, '2.9') !== false 
à la suite du même test pour la version 2.8

Tout le reste, nickel …

Et notamment Subscribe2Comments est revenu.

Bref, un samedi occupé de façon inatendue.

7 commentaires

  1. Un coup de stress on dirait !!!!

    Tout est bon maintenant, cool ;)

    De mon côté pas de soucis pour une mise à jour classique de la 8.6 vers la 9 quelle que soit la structure des tables, pas de soucis de plugins par contre l’éditeur d’images de le nouvelle version … j’aurais mieux fais de m’abstenir de vouloir voir ce qu’elle proposait … quant je redimensionne une image via le gestionnaire de média, je n’ai plus la possibilité de l’insérer dans un article sous différents formats, je n’ai que celui d’origine …

    Si un jour t’as l’occasion de tester … je suis abonné à ce commentaire :D

    Bonne continuation et pense à finir ta traduction :D

    Répondre à YannCo
  2. Ah là là :) non moi je n’utilise pas l’éditeur d’images, en fait j’aime pas trop le code qu’il génère, donc je fais ça à la mimine. 

    Je vais quand même m’y remettre pour voir les fonctionnalités proposées (modification, rotation, etc… ) mais je pense continuer sur mon système anté diluvien ^^ (en plus à l’inverse j’ai personnalisé tinymce en me rajoutant des macros, donc j’ai toute une partie de « mon » code qui s’insère toute seule)

    Répondre à Marie-Aude
  3. Pas hyper fan de cette option non plus, j’aurais vu d’autres fonctionnalités plus utiles avant celle ci pour WordPress mais voilà, je voulais essayer 

    Merci pour la piste, je vais jeter un oeil ;)

    Répondre à YannCo
  4. Et voilà que ça m’arrive aujourd’hui, le jour ou je suis supposé ouvrir ma nouvelle version, que faire ?

    Répondre à Zelvac
  5. Manifestement il manque un fichier de wordpress. peut etre a til été corrompu au chargement… essayez de recharger les fichiers.

    Répondre à Marie-Aude
  6. Je vais tenter de tout réinstaller.

    Répondre à Zelvac

Commenter

*Informations requises Merci de donner les informations requises

  • Pas de liens raccourcis
  • L'auteur doit s'identifier avec son pseudo, son nom, son prénom ou s'il le veut le nom de son entreprise ou de son site, sauf si celui-ci correspond à des mots clés. Toutes les combinaisons sont permises dans ce cadre.
  • L'url peut être celle d'un site ou profil de réseau social, uniquement la page d'accueil
  • Pas d'adresse email jetable

*

*