Module 5 · 5.4
Moins, c'est mieux : faire le tri et résoudre les conflits
Module 5: Thèmes et extensions · Temps de lecture : 9 minutes
Objectif : après cette leçon, vous saurez faire le tri dans vos extensions et trouver puis résoudre vous-même un conflit ou une page blanche.
Notions clés : désactiver ou supprimer, code inactif, erreur critique, mode de récupération (recovery mode), Santé du site, mode de dépannage, renommer le dossier d'une extension, WP_DEBUG, WP_DEBUG_LOG, debug.log, journal d'erreurs
Désactiver n'est pas supprimer
Dans Extensions, vous pouvez désactiver ou supprimer une extension. La différence :
- Désactiver : WordPress ne charge plus l'extension. Mais les fichiers restent dans
wp-content/plugins/et sont souvent encore accessibles directement via le serveur web. Si un fichier PHP isolé de cette extension contient une faille, cette faille est toujours là. Les pirates recherchent des fichiers vulnérables connus, pas des extensions actives. - Supprimer : les fichiers disparaissent. Certaines extensions effacent aussi leurs réglages et leurs tables dans la base de données lors de la suppression ; d'autres les laissent en place.
Si vous n'utilisez plus une extension, supprimez-la. La désactivation ne sert que temporairement (pendant la recherche d'un problème). Il en va de même pour les thèmes (leçon 2.4).
Faire le tri : un tour régulier
Une fois par trimestre (leçon 9.4), passez vos extensions en revue. Pour chaque extension :
- À quoi sert-elle ? Si vous ne le savez plus, renseignez-vous. Il s'avère souvent qu'une extension a été installée un jour pour une seule chose et n'a jamais été retirée.
- Est-elle encore utilisée ? Une extension de diaporama alors qu'aucun diaporama n'apparaît nulle part, une extension de formulaire alors que votre page de contact utilise un autre formulaire.
- Peut-on s'en passer ? WordPress, le thème ou une autre extension le fait-il déjà (leçon 5.3) ?
- Est-elle encore maintenue ? Date de la dernière mise à jour, toujours présente dans le répertoire des extensions ?
Faites d'abord le tri sur un site de préproduction (staging) (leçon 8.3), ou au minimum après une sauvegarde, et supprimez une seule extension à la fois afin de savoir ce qui a posé problème en cas de souci. Attention aux shortcodes : si vous supprimez une extension qui fournissait [formulaire id="2"], ce texte apparaîtra ensuite tel quel sur votre page.
Quand ça tourne mal : l'erreur critique
Après une mise à jour, une nouvelle extension ou une mise à niveau de PHP, vous voyez soudain :
Il y a eu une erreur critique sur ce site.ou une page entièrement blanche. Cela signifie que PHP s'est arrêté sur une erreur fatale avant qu'une page ne soit produite (leçon 1.2). La cause est généralement une extension ou un thème incompatible avec autre chose : une autre extension, la nouvelle version de WordPress ou la version de PHP.
Depuis WordPress 5.2, WordPress fait alors deux choses :
- il envoie un e-mail à l'adresse de l'administrateur indiquant quelle extension ou quel thème a provoqué l'erreur, avec un lien spécial ;
- ce lien vous permet de vous connecter en mode de récupération (recovery mode) : l'administration fonctionne alors, avec l'extension fautive temporairement désactivée, afin que vous puissiez la mettre à jour, la remplacer ou la supprimer.
C'est pourquoi il est si important d'utiliser une adresse d'administrateur que vous consultez réellement (leçon 2.2).
Chercher vous-même : les étapes
Vous ne recevez pas d'e-mail, ou le mode de récupération ne fonctionne pas ? Voici comment trouver la cause vous-même.
1. Consultez le journal d'erreurs
L'erreur figure presque toujours dans le journal d'erreurs du serveur web ou de PHP. Dans DirectAdmin, vous le trouvez parmi les journaux de votre domaine. Cherchez une ligne contenant PHP Fatal error à l'heure de votre tentative :
PHP Fatal error: Uncaught Error: Call to undefined function create_function()
in /home/utilisateur/domains/example.com/public_html/wp-content/plugins/ancien-slider/slider.php:42Le chemin vous indique le coupable : ici, l'extension du dossier ancien-slider. Le reste de la ligne vous dit pourquoi (ici : une fonction supprimée dans PHP 8, leçon 8.4).
2. Activez le journal de débogage (pas l'affichage à l'écran)
Si le journal d'erreurs ne contient rien d'utile, ajoutez dans wp-config.php (au-dessus de « C'est tout, ne touchez pas à ce qui suit ! ») :
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );WordPress écrit alors toutes les erreurs dans wp-content/debug.log, sans les montrer aux visiteurs. Ne laissez jamais ce réglage actif plus longtemps que nécessaire : debug.log se trouve dans un dossier servi par le serveur web, et quiconque connaît l'adresse peut le lire. Il contient des chemins, parfois des noms d'utilisateur et d'autres informations utiles à un pirate. Désactivez-le après votre recherche et supprimez debug.log. Vous pouvez aussi faire écrire le journal par WordPress en dehors du répertoire web en indiquant un chemin pour WP_DEBUG_LOG (par exemple '/home/utilisateur/logs/wp-debug.log', si votre hébergeur le permet). Dans la leçon 7.4, vous vérifierez que debug.log n'est pas public.
3. Désactiver une extension sans l'administration
Si vous n'avez pas accès à l'administration, désactivez l'extension suspecte en renommant son dossier, via le Gestionnaire de fichiers ou en SFTP :
wp-content/plugins/ancien-slider devient wp-content/plugins/ancien-slider-desactiveWordPress ne trouve alors plus l'extension et la désactive. Si vous ne savez pas laquelle est en cause, renommez tout le dossier plugins en plugins-desactives : toutes les extensions sont désactivées. Si le site fonctionne alors, créez un nouveau dossier plugins vide, remettez les extensions une par une et vérifiez après chacune si l'erreur revient. Il en va de même pour un thème : renommez le dossier du thème actif et WordPress se rabat sur un thème par défaut, s'il est encore présent (leçon 2.4).
4. Les conflits sans erreur fatale
Tous les problèmes ne sont pas des erreurs critiques. Parfois, une seule fonction ne marche pas : un bouton ne fait rien, le formulaire ne s'envoie pas, l'éditeur ne se charge qu'à moitié. Il s'agit alors souvent d'un conflit entre deux extensions ou entre une extension et le thème. L'extension officielle Health Check & Troubleshooting est utile dans ce cas : en mode de dépannage, elle désactive toutes les extensions et passe à un thème par défaut uniquement pour votre session, tandis que les visiteurs continuent de voir le site normal. Vous les réactivez ensuite une par une jusqu'à ce que le problème réapparaisse.
Consultez aussi la console de votre navigateur (F12) : les erreurs JavaScript mentionnent souvent le fichier, et donc l'extension.
Santé du site
Sous Outils > Santé du site, WordPress contrôle lui-même votre site : version de PHP obsolète, extensions et thèmes inactifs, extensions PHP manquantes, API REST qui ne fonctionne pas, tâches planifiées en retard. L'onglet Infos regroupe toutes les données de votre installation (versions, chemins, réglages PHP). Vous pouvez copier cet onglet et le joindre lorsque vous demandez de l'aide. Jetez-y un œil après chaque modification importante.
Résumé
- Désactiver laisse les fichiers en place ; supprimez les extensions et les thèmes que vous n'utilisez pas.
- Faites le tri chaque trimestre, une extension à la fois, après une sauvegarde ou sur un site de préproduction (staging).
- En cas d'erreur critique, WordPress envoie un e-mail avec un lien vers le mode de récupération.
- Le journal d'erreurs ou
debug.logindique le chemin du coupable ; désactivez le débogage après votre recherche, sinondebug.logreste public. - Sans accès à l'administration, vous désactivez une extension en renommant son dossier ; les conflits se recherchent avec le mode de dépannage.
Quiz
Exercice
Exercice A5.4 : Votre journal de débogage n'est-il pas public ? Saisissez l'adresse de votre site et prouvez, avec le code que vous donne l'exercice, qu'il s'agit bien de votre site (un enregistrement TXT ou un petit fichier). Le programme demande /wp-content/debug.log : c'est bon si ce fichier n'existe pas ou si l'accès est refusé (404 ou 403). Si le programme reçoit un fichier, le résultat est rouge. Le programme compte également combien de dossiers d'extensions différents apparaissent dans le HTML de votre page d'accueil (à titre informatif uniquement).
Exercice D5.4 : Faire le tri dans votre liste d'extensions. Dressez la liste de toutes vos extensions (actives et inactives) : nom, utilité, encore nécessaire (oui/non), alternative sans extension. Supprimez (après une sauvegarde ou sur un site de préproduction (staging)) les extensions qui ne sont plus nécessaires, une à la fois, et vérifiez après chaque suppression que le site fonctionne encore. Indiquez combien d'extensions vous aviez et combien il en reste, et notez s'il restait des shortcodes que vous avez dû nettoyer.
Exercice D5.4: Faire le tri dans votre liste d'extensions
Cet exercice, vous le faites vous-même ; personne ne le vérifie. Cochez ce que vous avez fait et marquez l'exercice comme terminé.
Le nombre après est inférieur ou égal, et chaque extension conservée a une raison. Vous supprimez les extensions inactives : même du code désactivé peut contenir une faille.
Vos cases cochées et vos notes restent uniquement dans ce navigateur ; nous ne les envoyons nulle part. Si vous êtes connecté, nous enregistrons dans Mes formations uniquement le fait que vous avez terminé l'exercice.
Pour aller plus loin
Ces articles décrivent les étapes dans les panneaux de WebOké ; dans d'autres panneaux, le fonctionnement est comparable.
- Guide DirectAdmin 18.1: Mon site web est blanc ou affiche une erreur 500
- Erreur 500 ou « erreur critique » sur votre site web (même après une mise à jour de WordPress)
- Guide DirectAdmin 14.6: Erreurs après une mise à niveau de PHP et trouver le journal des erreurs
- Guide DirectAdmin 17.2: Résumé du site & journaux : le journal des erreurs et le journal d'accès
- Comment déboguer PHP sans modifier le php.ini ?
- Déboguer WordPress (developer.wordpress.org, en anglais) : https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
- Choisir, évaluer et faire le tri parmi vos plugins WordPress
