Voici, mon petit retour d’expérience avec les mises à jour automatique de WordPress.
Insdiponibilité du blog
Pendant une journée, le blog memo-linux.com était indisponible et en prime une jolie erreur dans le navigateur: nginx 504 Time Out :-(
J’en profite pour remercier au passage un lecteur du blog, qui m’a signalé par mail le problème du Time Out: SMed79 ;-)
Et par ailleur, mes excuses auprès des autres lecteurs génés par l’indisponibilité du blog.
Recherche du problème
L’erreur nginx 504 Time Out signifie que le serveur Nginx n’a pas pû fournir à temps la page web.
En éxécutant la commande HTOP sur le serveur, qui héberge le blog, j’ai de suite vu le processus qui occupait à 100% les Cpu: php-fpm.
Après quelques analyses des logs, je ne voyais rien qui « clochait » sur le serveur. Et généralement, un serveur réglé « aux petits oignons », ne devient pas défaillant tout seul à part pour cause matériel.
Ce qui était assez surprenant, le serveur héberge 4 sites internet et seul le blog était impacté. J’en ai déduit que le serveur web était donc hors de cause.
J’ai ensuite pensé à un attaque sur mon blog, j’ai regardé les logs de Fail2Ban et rien de suspect.
Problème identifié
Après quelques heures de réflexion et une grosse analyse de mon serveur dédié, je me suis penché sur le cas de WordPress.
Mon premier réflexe fût de désactiver tous les plugins. Et bingo! la charge Cpu avait chutté \o/ !
Donc, j’ai réactivé les plugins les uns après les autres tout en ayant un oeil pointé sur mon HTOP. Et comme par hazard, le plugin qui me posait des soucis était en bas de la liste… Voici donc le nom du coupable: WP deferred javaScript !
Résolution du problème
Le rôle du plugin est de différer normalement après le chargement du CSS, du code HTML, des images et autres l’éxécution des scripts JavaScripts du blog.
Donc, au lieu d’utiliser un plugin, en mode fainéant, je vais tout simplement placer les JavaScripts en pied de page. Et supprimer le plugin.
J’oubliais, un grand merci à Jean-Philippe pour le soutient et son aide! ;-)
Désactivation de la mise à jour automatique de WordPress
Et j’ajoute l’astuce de Laurent, qui consiste à modifier le fichier wp-config.php pour désactiver la mise à jour de Worpdress en ajoutant à la fin:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
Plop, j’ai désactivé ce plugin depuis la version 1.5.6 déjà, il m’avait foutu la zone aussi. Après je ne comprend pas que l’équipe WP procède de la sorte; C’est complètement débile de faire des mises à jour automatique et limite irresponsable quand on sait ce que ça peut engendrer comme problème.
PS pour ceux que ça intéresse, il est possible de désactiver cette fonction en ajoutant cette ligne à la fin du fichier wp-config.php :
define( 'AUTOMATIC_UPDATER_DISABLED', true );
Merci Laurent pour l’astuce!
Clair que c’est hyper dangereux les mises à jour de version… Pourquoi pas sur des mises à jour mineur de sécurité mais surtout pas sur les maj majeur comme ce fut le cas.
Je t’avourais que celà ma bien pris la tête, pouffff…. et du stresse pour rien :-(
De rien ;)
Pour le stress tu as cherché tout de suite l’option la plus compliquée, en étudiant le problème du côté serveur.
Perso avant de toucher à quoi que ce soit et après avoir vérifié les tâches hébergeur http://travaux.ovh.net/ (en cas de travaux en cours), je commence toujours par vider le cache et désactiver les plugins avant de chercher ailleurs.
Merci pour les explications.