WordPress en erreur critique après la mise à jour PHP

Depuis la faille php2shell, beaucoup d'hébergeurs ont fait monter la version de PHP. Certains WordPress ne suivent pas : erreur 500, page blanche ou message d'erreur critique. Je diagnostique, je remets le site en ligne et je le sécurise pour qu'il tienne la prochaine mise à jour.

Remettre mon site en ligne

Le message que vous voyez

Il y a eu une erreur critique sur ce site. Veuillez vérifier la boîte de réception de votre e-mail d’administration pour obtenir des instructions. Si vous continuez à avoir des problèmes, essayez le forum de support.
En apprendre plus sur le débogage de WordPress.

Ce texte s'affiche quand du code PHP du site plante au point d'arrêter la page. Depuis WordPress 5.2, le site envoie alors un e-mail à l'adresse d'administration avec un lien secret vers le « mode de récupération » : il met en pause, pour vous seul, l'extension ou le thème fautif, pour que vous puissiez vous reconnecter à l'administration. Vos visiteurs, eux, voient toujours le site en panne tant que la cause n'est pas corrigée. Si l'e-mail n'arrive pas, ou si vous voyez une simple erreur 500, ce sont les journaux d'erreurs qui donnent la réponse.

Pourquoi maintenant : la faille php2shell a poussé les hébergeurs à corriger ou remplacer leurs versions de PHP, et le passage de PHP 7 à PHP 8 fait tomber le vieux code. Le contexte est dans mon article sur php2shell, et la méthode pour suivre ces mises à jour dans patcher ses runtimes quand on est une PME.

Les messages d'erreur que vous pouvez voir

Le message exact aide à trouver la cause. Voici les plus fréquents, tels que WordPress et PHP les affichent, en français et en anglais quand une traduction existe. Les parties variables (chemins, nombres, noms de fonctions) changent d'un site à l'autre.

Erreur critique (versions actuelles de WordPress)

FRIl y a eu une erreur critique sur ce site. Veuillez vérifier la boîte de réception de votre e-mail d’administration pour obtenir des instructions.
FRUne erreur critique s’est produite sur ce site. Veuillez contacter l’admin de votre site et l’informer de cette erreur pour obtenir de l’aide.
ENThere has been a critical error on this website.

Ce que ça veut dire : Du code PHP du site, le plus souvent une extension ou le thème, a planté. WordPress a intercepté l'erreur et, selon les cas, envoyé un e-mail avec un lien vers le mode de récupération.

Ce que je fais : Je lis le journal d'erreurs pour trouver l'extension ou le thème en cause, je remets le site en ligne, puis je corrige ou remplace le code fautif.

Ancienne version du même message (WordPress 5.2)

FRLe site rencontre des difficultés techniques. Veuillez relever la boîte de messagerie du compte administrateur du site pour obtenir des instructions.
ENThe site is experiencing technical difficulties.

Ce que ça veut dire : Même cause que ci-dessus, sur un WordPress de 2019 : le cœur lui-même est aussi à mettre à jour.

Ce que je fais : Je remets le site en ligne, puis je planifie la mise à jour de WordPress, de ses extensions et de PHP.

Erreur 500 et page blanche

500 Internal Server Error
White Screen of Death (écran blanc)

Ce que ça veut dire : Le serveur n'a pas pu produire la page, sans dire pourquoi. Sur un WordPress, c'est souvent une erreur PHP fatale : la cause exacte est dans le journal d'erreurs de l'hébergeur.

Ce que je fais : Je récupère l'erreur réelle dans les journaux de l'hébergeur avant de toucher au site.

Fonction supprimée de PHP

PHP Fatal error: Uncaught Error: Call to undefined function create_function()
Call to undefined function each()
Call to undefined function mysql_connect()

Ce que ça veut dire : Le code appelle une fonction qui n'existe plus : create_function() et each() ont disparu en PHP 8.0, mysql_connect() dès PHP 7.0. L'extension ou le thème en cause est trop ancien pour la version de PHP installée.

Ce que je fais : Je mets à jour ou remplace l'extension ou le thème qui appelle la fonction supprimée.

Erreurs de type, plus strictes depuis PHP 8

Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given
Uncaught ArgumentCountError: Too few arguments to function …(), 1 passed and exactly 2 expected

Ce que ça veut dire : PHP 8 refuse des appels qu'il tolérait avant, par exemple compter quelque chose qui n'est pas une liste, ou appeler une fonction avec trop peu d'arguments. Le code n'a pas été adapté à PHP 8.

Ce que je fais : Je corrige le code concerné ou je le remplace par une version compatible PHP 8.

Extension MySQL absente

FRIl semble que votre installation PHP ne possède pas l’extension MySQL nécessaire pour WordPress.
ENYour PHP installation appears to be missing the MySQL extension which is required by WordPress.

Ce que ça veut dire : La nouvelle version de PHP de l'hébergeur n'a pas l'extension de base de données activée (mysqli). C'est un réglage côté hébergement, pas un problème de votre code.

Ce que je fais : Je vérifie la configuration PHP de l'hébergement et je fais activer l'extension manquante.

Mémoire épuisée

Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)

Ce que ça veut dire : Le script a dépassé la mémoire autorisée par le serveur. Les nombres varient. Une limite trop basse ou une extension trop gourmande sont les causes habituelles.

Ce que je fais : Je cherche ce qui consomme la mémoire et j'ajuste la limite si elle est vraiment trop basse.

Avertissements en haut des pages

Deprecated: …
Warning: …

Ce que ça veut dire : Ce ne sont pas des pannes : PHP signale du code ancien ou fragile. Mais ils ne devraient jamais s'afficher aux visiteurs, ils trahissent l'affichage des erreurs en production et annoncent souvent la prochaine casse.

Ce que je fais : Je coupe l'affichage public des erreurs, je les envoie dans un journal et je traite les causes.

Connexion à la base de données

FRErreur lors de la connexion à la base de données
ENError establishing a database connection

Ce que ça veut dire : WordPress n'arrive pas à joindre sa base de données : identifiants de wp-config.php, serveur de base de données arrêté ou saturé. C'est rarement lié à la version de PHP.

Ce que je fais : Je vérifie les identifiants de wp-config.php et l'état du serveur de base de données.

Version de PHP trop ancienne pour WordPress

Your server is running PHP version 7.2.34 but WordPress 7.0 requires at least 7.4.

Ce que ça veut dire : Ce message est affiché en anglais uniquement. Le serveur fait tourner une version de PHP plus ancienne que le minimum exigé par la version de WordPress installée : c'est l'hébergement qu'il faut mettre à niveau, pas le site.

Ce que je fais : Je fais passer l'hébergement sur une version de PHP maintenue et compatible.

Alerte de version PHP obsolète dans le tableau de bord

FRMise à jour de PHP nécessaire
FRVotre site utilise une version obsolète de PHP (…), qui devrait être mise à jour.
ENYour site is running on an outdated version of PHP (…), which should be updated.

Ce que ça veut dire : Pas une panne, un avertissement : WordPress prévient que la version de PHP ne reçoit plus, ou bientôt plus, de correctifs. C'est le bon moment pour préparer la migration, avant que l'hébergeur ne la force.

Ce que je fais : Je vérifie la compatibilité du site avec la version cible, puis je prépare la migration.

Maintenance bloquée

FRIndisponibilité temporaire pour cause de maintenance. Veuillez revenir dans un instant.
ENBriefly unavailable for scheduled maintenance. Check back in a minute.

Ce que ça veut dire : S'affiche pendant une mise à jour. Si le message reste, la mise à jour a été interrompue et a laissé un fichier .maintenance à la racine du site.

Ce que je fais : Je vérifie que la mise à jour est complète, puis je retire le fichier .maintenance.

Pourquoi le site casse

Le site n'a souvent pas changé : c'est son environnement qui a bougé.

Une extension ou un thème abandonné
Du code écrit pour PHP 7 et jamais mis à jour. PHP 8.0 a supprimé des fonctions encore présentes dans de vieux plugins, comme create_function() ou each() : leur appel devient une erreur fatale.
Un WordPress trop ancien
Chaque version de WordPress a ses versions de PHP compatibles : WordPress 5.8 ne l'est pas avec PHP 8.1, WordPress 6.0 ne l'est pas avec PHP 8.2. Le cœur doit souvent suivre PHP.
Un changement côté hébergeur
Nouvelle version de PHP, extensions PHP absentes, réglages différents. Le code est le même, l'environnement non.
Le mauvais réflexe
Rester durablement sur une version de PHP qui n'est plus corrigée. WordPress.org recommande PHP 8.3 ou plus et rappelle que les versions en fin de vie exposent le site.

Ce que je propose

Avant de toucher au site, je fais une sauvegarde complète des fichiers et de la base de données, et je travaille sur une copie quand c'est possible.

  1. Dépannage urgent

    Lecture des journaux d'erreurs, mode de récupération ou WP_DEBUG en journal sans affichage public, identification de l'extension, du thème ou de la ligne fautive. Remise en ligne par désactivation ciblée, correctif, ou retour temporaire à une version de PHP encore supportée si l'hébergeur le permet.

    Livrable : Un site de nouveau en ligne, et la liste de ce qui reste à traiter.

  2. Remise à niveau et sécurisation

    Mise à jour de WordPress, remplacement des extensions abandonnées, passage à une version de PHP maintenue, audit de sécurité, revue des comptes administrateurs, sauvegardes testées, durcissement de la configuration.

    Livrable : Un site compatible avec un PHP maintenu et un rapport priorisé.

  3. Suivi dans la durée

    Veille sur les avis de sécurité de WordPress, des extensions utilisées et de PHP, mises à jour encadrées, vérification avant chaque changement de version annoncé par l'hébergeur.

    Livrable : Un site qui suit les mises à jour au lieu de les subir.

Vos questions sur l'erreur critique WordPress

Le contexte de la faille et les versions corrigées : php2shell, que faire.

Mon hébergeur propose de revenir à l'ancienne version de PHP, est-ce une solution ?

Pour remettre le site en ligne quelques jours, oui, si cette version reçoit encore des correctifs de sécurité. Pas pour s'y installer : PHP 8.1 et les versions plus anciennes ne sont plus corrigées par le projet PHP, et php2shell montre ce que coûte un moteur en retard.

Mon site affiche « Call to undefined function » ou « Uncaught TypeError » : est-ce grave ?

Ce n'est pas une attaque : c'est du code écrit pour une ancienne version de PHP. Le message indique en général le fichier en cause, ce qui permet de retrouver l'extension ou le thème à mettre à jour ou à remplacer.

Je n'ai pas reçu l'e-mail de récupération, que faire ?

Vérifiez l'adresse d'administration du site et vos courriers indésirables. Sinon, les journaux d'erreurs de l'hébergeur ou WP_DEBUG_LOG permettent de retrouver l'extension ou le thème fautif, qu'on désactive ensuite depuis les fichiers du site.

Faut-il activer WP_DEBUG sur le site en ligne ?

Pas avec l'affichage des erreurs : la documentation WordPress réserve ces outils aux copies de test. Pour un diagnostic en production, on écrit dans un journal avec l'affichage désactivé, et on coupe tout ensuite.

Mon site fonctionne de nouveau, dois-je encore faire quelque chose ?

Souvent oui : une extension désactivée en urgence peut manquer à une fonction du site, et un site longtemps resté sans mises à jour mérite un audit de sécurité.

Votre site affiche une erreur critique depuis la mise à jour de PHP ?

Envoyez-moi son adresse et ce que vous voyez, je vous dis par où commencer.

Échanger avec Kamel Laïmène

Faits et libellés vérifiés le 26 octobre 2026 dans le code de WordPress et ses traductions françaises officielles, le code source de PHP et la documentation officielle de WordPress et de PHP. Cette page ne décrit pas de missions clients.

<<<<<<< HEAD ======= >>>>>>> origin/main