Qu'est-ce qu'une erreur 500 ?

Une erreur 500 signifie que quelque chose s'est mal passé sur le serveur, sans que celui-ci puisse préciser quoi. C'est un message générique du type « quelque chose est cassé », qui demande une investigation.

Première étape : consultez les journaux d'erreurs dans EGPNL, sous Journaux puis Journaux d'erreurs. Le message précis vous mènera à la cause exacte.

Causes fréquentes et solutions

1. Erreurs de syntaxe PHP

Cause

Point-virgule ou accolade manquants, ou faute de frappe dans le code PHP.

Solution

Relevez le fichier et le numéro de ligne dans les journaux d'erreurs. Erreurs courantes : ; manquant, { non fermée, ou $ dans une chaîne.

2. Version de PHP incompatible

Cause

Le code utilise des fonctionnalités absentes de la version de PHP actuelle, ou des fonctions obsolètes.

Solution

Vérifiez la version de PHP requise. Dans EGPNL, ouvrez PHP puis Version de PHP et basculez sur une version compatible.

3. Problèmes de permissions de fichiers

Cause

Les fichiers PHP ont de mauvaises permissions (trop restrictives, ou 777).

Solution

Mettez les dossiers en 755 et les fichiers en 644. N'utilisez jamais 777.

# Fix permissions via SSH
find /path/to/site -type d -exec chmod 755 {} \;
find /path/to/site -type f -exec chmod 644 {} \;

4. Extensions PHP manquantes

Cause

L'application a besoin d'une extension PHP qui n'est pas activée.

Solution

Dans EGPNL, ouvrez PHP puis Extensions PHP et activez l'extension requise (par exemple mysqli, gd ou curl).

5. Limite de mémoire dépassée

Cause

Le script PHP consomme plus de mémoire qu'il n'est autorisé.

Solution

Augmentez la limite de mémoire dans EGPNL, sous PHP puis Réglages PHP, ou ajoutez ceci à votre code :

// In PHP file
ini_set('memory_limit', '256M');

// Or in php.ini
memory_limit = 256M

6. Fichier .htaccess corrompu (Nginx)

Cause

Certaines applications créent des fichiers .htaccess, mais EGPHP fonctionne sous Nginx, qui ne les prend pas en charge.

Solution

Les règles .htaccess doivent être converties au format Nginx. Les options de configuration se trouvent dans EGPNL, sous Nginx.

7. Échec de la connexion à la base de données

Cause

Identifiants de base de données erronés, ou base inexistante.

Solution

Vérifiez les identifiants dans votre fichier de configuration (wp-config.php pour WordPress). Assurez-vous que la base existe bien dans EGPNL.

8. Conflit d'extension ou de thème (WordPress)

Cause

Une extension ou un thème comporte un bug, ou entre en conflit avec un autre.

Solution

Renommez le dossier des extensions en plugins_old depuis le gestionnaire de fichiers. Si le site se charge, remettez le nom d'origine et réactivez les extensions une par une pour trouver la coupable.

Solutions propres à WordPress

Activer le mode débogage de WordPress

Modifiez wp-config.php et ajoutez ou changez :

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Consultez ensuite wp-content/debug.log pour y repérer les erreurs.

Augmenter la mémoire de WordPress

// Add to wp-config.php
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Remplacer les fichiers du cœur corrompus

  1. Téléchargez une version neuve de WordPress depuis wordpress.org
  2. Supprimez les dossiers wp-admin et wp-includes (mais PAS wp-content)
  3. Téléversez les nouveaux wp-admin et wp-includes
  4. Ne remplacez wp-config.php que s'il est corrompu
Sauvegardez d'abord ! Sauvegardez toujours votre site avant de toucher aux fichiers du cœur.

Consulter les journaux d'erreurs

Pour diagnostiquer une erreur 500, les journaux d'erreurs sont votre meilleur allié :

  1. Ouvrez EGPNL puis Journaux
  2. Sélectionnez Journaux d'erreurs
  3. Repérez les entrées récentes (les plus récentes sont en bas)
  4. Notez le chemin du fichier et le numéro de ligne

Messages de journal courants

  • PHP Parse error — erreur de syntaxe dans un fichier PHP
  • PHP Fatal error — erreur critique qui interrompt l'exécution
  • Allowed memory size exhausted — la limite de mémoire est atteinte
  • Call to undefined function — fonction ou extension manquante

Toujours une erreur 500 ?

  1. Copiez le message d'erreur exact depuis les journaux
  2. Notez quand l'erreur a commencé (après une mise à jour ? une nouvelle extension ?)
  3. Essayez de restaurer une sauvegarde si vous en avez une
  4. Contactez le support en détaillant l'erreur