Base de connaissances · Scripts et programmes
Une erreur critique s'est produite sur ce site web | WordPress
Dernière mise à jour : 2023-01-24
Le message “There has been a critical error on your website” (« Une erreur critique est survenue sur votre site ») est alarmant pour les propriétaires de sites WordPress. Il empêche les visiteurs d’accéder au site et, dans certains cas, vous ne pouvez même pas accéder au panneau d’administration. Heureusement, il est possible de résoudre ce problème sans y consacrer trop de temps. Cet article explique la signification du message “There has been a critical error on your website” et présente cinq méthodes pour le corriger.
Que signifie le message “There Has Been a Critical Error on Your Website” ?
Some WordPress errors may block you from accessing the dashboard, displaying the message, “There has been a critical error on this website. Please check your site admin email inbox for instructions.”
Ce message signifie qu’une erreur PHP fatale s’est produite sur le site. Elle survient lorsqu’un script PHP cesse de s’exécuter et ne parvient pas à terminer son traitement. Pour aider ses utilisateurs, WordPress dispose d’une fonctionnalité qui détecte lorsqu’une extension ou un thème provoque une erreur fatale et envoie une notification à l’adresse e-mail de l’administrateur. Dans cet e-mail, les utilisateurs reçoivent davantage de détails sur la cause du problème.
L’e-mail contient également une URL permettant d’accéder au site en mode de récupération. Cliquez sur le lien pour vous connecter en toute sécurité au tableau de bord WordPress et résoudre le problème. Si vous rencontrez cette erreur WordPress et que vous ne voyez aucune notification dans votre boîte de réception, vérifiez votre dossier de courrier indésirable. Il peut toutefois arriver que les propriétaires de sites ne reçoivent pas cet e-mail et doivent localiser le problème par eux-mêmes.
5 façons de corriger une erreur critique dans WordPress
Pour corriger une erreur critique WordPress, vous devez d’abord en identifier la cause. L’e-mail de notification de WordPress indique le fichier et la ligne de code à l’origine du problème, mais ne vous inquiétez pas si vous ne l’avez pas reçu.
There are five methods to locate and resolve the critical error in your WordPress site.
1. Check Error Logs
La première méthode consiste à consulter le fichier error_log, qui contient les informations sur les erreurs PHP. Utilisez le Fichier gestionnaire of a File Transfer Protocol (FTP) client on your hosting account and go to home/[username]/public_html/error_log ou home/[username]/path-to-wordpress/error_log.
Le fichier enregistre quatre types d’erreurs PHP – avertissement (warning), notification (notice), analyse (parse) et fatale (fatal). Au début de chaque entrée du journal, vous verrez le type d’erreur détecté. Si vous trouvez une erreur d’analyse ou une erreur fatale, vous devrez la corriger.
Si vous ne parvenez pas à localiser le fichier error_log file, ask us for help. Keep in mind that the error_log file will only be available if you enable PHP error logging. To do so, configure the PHP settings from your cPanel.
Si vous ne parvenez toujours pas à consulter le fichier du journal d’erreurs, essayez la méthode suivante, qui utilise le mode débogage.
2. Déboguer WordPress
WordPress intègre un système de débogage qui identifie les erreurs de code dans le noyau du logiciel, les thèmes et les extensions.
Pour activer le mode de débogage de WordPress, ouvrez le fichier wp-config.php dans votre public_html répertoire. Ensuite, repérez les lignes suivantes :
define( 'WP_DEBUG', false ); define( 'WP_DEBUG_DISPLAY', false ); define( 'WP_DEBUG_LOG', false ); define( 'SCRIPT_DEBUG', false );
Le tableau “false” signifient que le mode de débogage de WordPress est désactivé. Remplacez “false” par “true” sur toutes les lignes pour l’activer. Ces quatre lignes contiennent des constantes PHP. Lorsqu’elles sont activées, elles exécutent les tâches suivantes :
- WP_DEBUG – déclenche le mode de débogage dans WordPress.
- WP_DEBUG_DISPLAY – affiche les messages de débogage dans le code HTML des pages.
- WP_DEBUG_LOG – enregistre les détails des erreurs dans le debug.log fichier.
- SCRIPT_DEBUG – exécute les versions “dev” des fichiers CSS et JavaScript du noyau au lieu des versions minifiées.
Si vous ne trouvez pas ces lignes dans le wp-config.php file, simply add them to the script. Remember to input the “true” valeur sur chaque ligne.
After enabling the debug mode, refresh your site. You should see the details above the error message.
Corrigez le problème en suivant les instructions, et votre site devrait fonctionner normalement à nouveau. Désactivez le mode de débogage en remplaçant les valeurs par “false” une fois le problème résolu.
3. Résoudre les conflits de thème ou d'extensions
La méthode suivante vous aidera à identifier les conflits au niveau de votre thème et de vos extensions. Commencez par vérifier votre thème. Si vous avez accès à l'espace d'administration de WordPress, il vous suffit de remplacer le thème actif par un thème par défaut tel que Twenty Twenty.
Si vous ne pouvez toutefois pas accéder au panneau d'administration, utilisez le Gestionnaire de fichiers ou un client FTP comme FileZilla et rendez-vous dans public_html -> wp-content -> themes. Repérez le dossier de votre thème actif et renommez-le en youractivetheme-disabled. Vous pouvez également exécuter la commande suivante dans le Terminal pour basculer vers un thème par défaut :
# wp theme activate twentytwentytwo
Une fois cette opération effectuée, rechargez le site. S'il s'affiche normalement, c'est qu'un thème est en conflit ; vous devrez alors revenir à la version précédente du thème ou en choisir un tout nouveau.
En revanche, si l'erreur persiste, vérifiez si le problème provient de vos extensions. La procédure est similaire à celle utilisée pour le thème. Si vous avez accès au panneau d'administration de WordPress, désactivez toutes les extensions. Si vous ne pouvez pas accéder au panneau d'administration, utilisez le Gestionnaire de fichiers ou un client FTP et rendez-vous dans public_html -> wp-content -> plugins. Renommez tous les répertoires d'extensions en plugin-disabled à l'exception du dossier de l'extension Elementor, si celle-ci est installée.
Actualisez votre site. S'il s'affiche normalement, cela indique qu'une extension est en conflit.
Pour déterminer précisément quelle extension a provoqué l'erreur, vous devez les réactiver une à une, en rechargeant la page à chaque fois. Si vous avez renommé les dossiers de vos extensions, rendez-vous dans public_html -> wp-content -> plugins. Rétablissez un à un les noms d'origine de tous les dossiers d'extensions. Vous pouvez également exécuter la commande suivante dans le Terminal pour désactiver une extension :
# wp plugin deactivate -all
Augmenter la limite de mémoire PHP
Même si une extension ou un thème semble être à l'origine du dysfonctionnement de votre site, la limite de mémoire PHP est souvent la véritable responsable.
Qu’est-ce que la limite de mémoire PHP ? Votre serveur web ne dispose que d’une certaine quantité de RAM, ou mémoire. WordPress impose donc une limite stricte à la quantité de mémoire qu’un seul script PHP peut utiliser. Lorsque cette limite est dépassée, vous obtenez l’écran blanc de la mort ou l’erreur critique.
S’il n’est pas souhaitable de définir une limite de mémoire trop élevée, au risque de laisser des scripts mal configurés ralentir considérablement votre site, la valeur par défaut peut être beaucoup trop basse. Augmenter légèrement votre limite PHP pourrait réparer immédiatement votre site.
- Étape 1 : Accédez à votre site via FTP et ouvrez wp-config.php.
- Étape 2 :Insérez le code suivant juste avant la dernière ligne, puis enregistrez.
define( 'WP_MEMORY_LIMIT', '128M' );
Vous pouvez également essayer 256M si cela ne résout pas le problème, mais toute valeur supérieure est inutile, sauf si la documentation d’une extension l’exige expressément. Si le problème vient de la limite de mémoire, l’extension que vous utilisez est presque certainement défectueuse et doit être désactivée
Augmenter la taille maximale des fichiers téléversés et les fonctions de traitement de texte
Si l’erreur critique n’apparaît que dans certaines situations et non en permanence sur toutes les pages, un petit ajustement de quelques fonctions PHP peut suffire à la corriger. Si vous voyez un écran d’erreur en téléversant de gros fichiers, la cause probable est une taille maximale de fichier téléversé trop faible, tandis que l’échec de l’affichage de certaines grandes pages peut être résolu en augmentant les limites de récursion et de backtrack.
Commencez par vérifier la taille maximale de téléversement autorisée et comparez-la au fichier que vous essayez de téléverser. Vous la trouverez en vous rendant sur Médias > Ajouter and checking beneath the file uploader.
Pour résoudre l’un ou l’autre de ces problèmes, vous devrez vous connecter en FTP et modifier le wp-config.php fichier, en plaçant le nouveau code juste au-dessus de la dernière ligne de commentaire.
Pour augmenter la taille maximale des fichiers téléversés, ajoutez ce code :
ini_set('upload_max_size' , '256M' );
ini_set('post_max_size','256M');
And to fix the breaking of large pages on your site, add this code:
ini_set('pcre.recursion_limit',20000000);
ini_set('pcre.backtrack_limit',10000000);
4. Restore the Site From a Backup
Using this method, you need to restore the website files from a backup. An error like this is one reason why backing up your WordPress site is essential.
5. Mettre à niveau la version de PHP
WordPress requiert PHP 7.4 ou une version supérieure. Vérifiez la version de PHP sur votre hébergeur ; si vous utilisez une version plus ancienne de PHP, la mise à niveau vers la version 7.4 ou supérieure peut corriger l’erreur “There has been a critical error on your website” .
Conclusion
Inutile de paniquer si vous rencontrez le message “There has been a critical error on your website” Consultez simplement votre boîte de réception et repérez le courriel envoyé par WordPress afin de localiser le problème et de le corriger rapidement.
Même si vous ne recevez pas ce courriel, cinq méthodes sont à votre disposition pour résoudre le problème :
- Consulter les journaux d’erreurs du site
- Utiliser le mode de débogage de WordPress
- Solve potential theme or plugin conflicts
- Restaurer le site à partir des fichiers de sauvegarde
- Mettre à niveau la version de PHP du site
Nous vous recommandons également de créer des sauvegardes régulièrement. Vous pourrez ainsi restaurer rapidement votre site si un message d’erreur WordPress de ce type s’affiche.
Remarque : vous pouvez également vous intéresser aux autres erreurs WordPress suivantes, si vous en rencontrez plusieurs :
- ERR_CONNECTION_TIMED_OUT — Causée par un serveur web lent ou surchargé.
- ERR_CACHE_MISS — Si vous voyez cette erreur, examinez le cache de votre site ou les outils PHP tels que les extensions, car ils en sont très probablement la cause.
- 500 Internal Server Error — Une erreur grave qui peut généralement être attribuée à la corruption de fichiers du serveur.
- Erreur d'établissement d'une connexion à la base de données — Une corruption de votre base de données ou un problème lié au serveur de base de données peut être à l'origine (root) de cette erreur.
- HTTP 503 Service Unavailable — Indique un problème avec votre serveur.
- HTTP 502 Bad Gateway — Un autre problème de serveur, souvent causé par un trop grand nombre de visiteurs qui le surchargent.
And if you see any of the above or other strange errors, please raise a support ticket with a screenshot of the error.
Réinstaller WordPress
If the issue is not found in plugins, themes or PHP configuration, a corrupt WordPress core file or malware could also trigger the critical error in WordPress. The easiest way to fix this is by reinstalling WordPress. You can issue following command at on Terminal to force reinstall WordPress core;
# wp core download --skip-content --force
Si rien ne fonctionne, contactez-nous pour une correction de code payante pour votre site.
Tell us what you need
Compare available plans or describe your workload so we can discuss a suitable starting point.