Erreur 500 : d’où vient-elle vraiment
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. 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.
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.
- 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.
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 sur 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.
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.