Erreur 500 ou page blanche : d’où vient la panne
Une erreur 500 n’est pas un diagnostic, c’est un aveu d’échec poli. Le serveur a reçu la demande, a lancé le programme, et le programme s’est arrêté avant d’avoir produit une réponse valable. Une page entièrement blanche relève du même mécanisme, simplement affichée autrement. Le motif réel a été écrit quelque part — pas à l’écran, pour des raisons de sécurité. Tant qu’on ne l’a pas lu, tout ce qu’on tente relève de la devinette.
Ce que le code 500 exclut déjà
Avant de chercher, il est utile de noter tout ce que ce code élimine. Le nom de domaine se résout correctement, sinon rien n’aurait répondu. Le serveur web fonctionne, puisque c’est lui qui a produit la page d’erreur. Le réseau fonctionne. Le compte d’hébergement n’est pas suspendu.
Le champ des causes se réduit donc à l’exécution du site : configuration du serveur pour ce site, code applicatif, ou ressources allouées à cette exécution précise. C’est une bonne nouvelle, parce que ces trois familles se distinguent par des indices simples, et qu’aucune ne demande d’attendre une réponse d’un tiers.
Cette page décrit le mécanisme commun à toutes les plateformes. Sur une boutique PrestaShop, les emplacements précis — var/logs, la constante _PS_MODE_DEV_, le dossier override/ — et les causes propres à la plateforme sont détaillés dans la page consacrée à l’erreur 500 PrestaShop. Sur WordPress, le même symptôme prend la forme de l’erreur critique WordPress.
Les causes que je rencontre, par ordre de fréquence
- Configuration : une directive invalide dans un fichier de configuration lu par le serveur suffit à renvoyer un 500 sur toutes les pages, y compris avant que le CMS ne démarre. Une ligne ajoutée par un module de cache ou de sécurité en est souvent l’origine.
- Code applicatif : appel à une fonction supprimée, module incompatible avec la version de PHP, surcharge écrite pour une version antérieure du cœur, cache compilé qui référence des fichiers disparus, ou simple erreur de syntaxe introduite en modifiant directement un fichier de thème — une accolade ou un point-virgule manquant suffit.
- Ressources : mémoire allouée insuffisante pour la page demandée, limite de processus atteinte, espace disque plein empêchant l’écriture des fichiers temporaires.
- Droits : un fichier ou un répertoire dont les permissions sont refusées par le serveur, notamment quand elles sont trop ouvertes sur certaines configurations d’hébergement partagé.
Retrouver le message réel
-
Noter la portée avant tout
Tout le site, une seule page, uniquement l’administration, ou seulement certaines fiches ? Une erreur globale oriente vers la configuration ou le serveur ; une erreur ciblée oriente vers un module ou une donnée précise.
-
Ouvrir le journal d’erreurs du serveur
C’est là que se trouve le message complet, avec le fichier et la ligne. Chez la plupart des hébergeurs il est accessible depuis le panneau, sans intervention du support.
-
Chercher aussi le journal applicatif
Le CMS tient son propre journal, distinct de celui du serveur. Les deux se complètent : le premier donne l’erreur technique, le second le contexte fonctionnel.
-
Activer le mode de débogage le temps d’un essai
Il fait réapparaître le message à l’écran. Il se désactive immédiatement après : laissé actif, il expose des chemins et des noms de tables à tous les visiteurs.
-
Mettre de côté le fichier de configuration suspect
Si l’erreur touche tout le site, renommer temporairement le fichier de configuration lu par le serveur dit en une seconde s’il en est l’origine.
-
Rapprocher de la dernière intervention
Mise à jour, installation d’un module, modification d’un fichier de thème : la panne suit presque toujours une action, même faite par quelqu’un d’autre, et même plusieurs jours plus tôt si un cache en retardait l’effet.
Quand la même panne s’affiche en page blanche
Selon la configuration du serveur, la même erreur fatale produit un écran d’erreur 500 chez l’un et une page entièrement blanche chez l’autre. Une page blanche n’est donc pas une absence de réponse : le serveur a répondu, le programme s’est arrêté en cours de route, et le message est parti dans un journal. La méthode ci-dessus s’applique telle quelle.
Un seul geste supplémentaire divise le champ des causes par deux : afficher le code source de la page. Si la fenêtre est vide, l’exécution s’est arrêtée avant d’écrire quoi que ce soit — erreur fatale de PHP ou dépassement de mémoire, exactement le même terrain qu’un 500. S’il y a du HTML mais rien de visible, le programme a fonctionné et c’est l’affichage qui est cassé : feuille de style non chargée, gabarit vide, script qui masque le contenu. Ce second cas ne se lit pas dans le journal du serveur, mais dans la console du navigateur.
Reste le cas intermédiaire, le plus riche en information : la page s’affiche à moitié puis s’arrête au milieu d’une phrase. L’exécution a été interrompue en cours d’écriture, et l’endroit exact de la coupure désigne le bloc de page en cause.
L’erreur qui ne touche qu’une partie du site
C’est le cas le plus riche en information, et le plus souvent mal exploité. Une erreur 500 limitée à une seule page signifie que le code fautif n’est exécuté que là. Ce qui distingue cette page des autres est donc la piste directe : un module accroché à cet emplacement seulement, une donnée particulière, un champ vide, une déclinaison mal formée.
- Sur l’administration uniquement : presque toujours un module chargé côté administration, ou une page listant trop d’enregistrements.
- Sur quelques fiches produit seulement : chercher ce que ces fiches ont en commun, pas ce qui les distingue entre elles.
- Au moment de valider une commande : le champ des causes se réduit au tunnel et aux modules de paiement ou de transport.
- De façon intermittente : c’est une limite de ressources, pas un défaut de code.
Continuer sur la bonne page
-
Erreur 500 PrestaShop
Le diagnostic complet côté PrestaShop, du mode debug aux surcharges.
-
Erreur critique sur WordPress
Le même symptôme côté WordPress et WooCommerce, avec ses causes propres.
-
Lire les journaux d’erreurs
Comment lire une trace d’erreur sans être développeur.
-
L’erreur 500 expliquée
La définition du code et sa place parmi les autres réponses du serveur.
-
Activer le mode debug sur PrestaShop
La marche à suivre exacte pour faire réapparaître le message masqué.
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.