Aller au contenu principal

Erreur interne du serveur 500 : causes et solutions

· 5 minutes de lecture
Customer Care Engineer

how-to-fix-500-internal-server-error-website-troubleshooting

Une erreur interne de serveur 500 est l'un des problèmes les plus courants rencontrés par les propriétaires et administrateurs de sites web. Elle signale qu'une erreur s'est produite sur le serveur, mais n'offre pas de diagnostics précis. Cet article explique ce qui déclenche généralement une erreur 500 et comment la résoudre.


Causes possibles d'une erreur 500

Une erreur 500 peut survenir pour de nombreuses raisons. Les plus fréquentes sont :

  1. Problèmes de ressources côté serveur

Souvent, une erreur 500 peut être causée par des problèmes techniques sur le serveur, tels que le manque de ressources (RAM, temps CPU).

  1. Erreurs dans le code du site web

Les scripts ou le code du site web peuvent contenir des erreurs qui provoquent un crash. Cela peut être dû à des requêtes incorrectes, des erreurs dans les fichiers de configuration ou des problèmes d'interaction entre les composants du site.

  1. Problèmes avec le fichier .htaccess

Le fichier .htaccess est utilisé pour configurer le serveur web et peut contenir des erreurs qui entraîneront une erreur 500. Par exemple, des règles de redirection incorrectes ou des paramètres erronés peuvent provoquer un crash.

  1. Mises à jour récentes

Des erreurs peuvent survenir après des mises à jour des applications du site web ou du serveur où les changements n'ont pas été correctement gérés.


Comment corriger une erreur 500

  1. Vérifiez les journaux du serveur web

Pour déterminer la cause d'une erreur 500, la première étape consiste à vérifier les journaux du serveur. Ces journaux contiennent généralement des informations sur l'échec, qu'il s'agisse d'une erreur de code, d'une mauvaise configuration ou d'un problème au niveau du serveur. Cependant, il est important de comprendre que les journaux du serveur web (comme ceux d'Nginx ou d'Apache) enregistrent souvent uniquement l'occurrence de l'erreur et le code de réponse, et non la cause première. C'est particulièrement vrai pour Nginx, qui agit généralement comme un proxy et se contente de transmettre l'erreur de l'application backend.

Selon le serveur web utilisé, les journaux peuvent se trouver dans les répertoires suivants :

Apache :

  • Ubuntu/Debian : /var/log/apache2/error.log

  • CentOS/AlmaLinux/Rocky Linux : /var/log/httpd/error.log

Nginx :

  • /var/log/nginx/error.log

Si votre serveur est géré via un panneau de contrôle tel que FASTPANEL, la visualisation des journaux devient encore plus simple. Pour ce faire :

  • Connectez-vous au panneau de contrôle.

  • Ouvrez la carte du site et localisez la section « Journaux ».

  • L'onglet « Journal des erreurs Frontend » contient les erreurs du serveur web Nginx, tandis que l'onglet « Journal des erreurs Backend » contient les erreurs Apache.

Gardez à l'esprit que de nombreux CMS et frameworks (WordPress, Laravel, Joomla, etc.) maintiennent leurs propres journaux d'erreurs. Ces journaux fournissent souvent des informations plus précises sur la cause d'une erreur 500. Consultez la documentation de votre plateforme pour trouver où ces journaux sont stockés.

Les journaux vous donneront très probablement un aperçu détaillé de ce qui s'est mal passé. Si l'erreur 500 est déclenchée par une mauvaise configuration ou des problèmes de code, vous pouvez voir les fichiers, voire les lignes exactes, qui provoquent l'échec.

  1. Activer la journalisation des erreurs côté PHP

Pour obtenir des diagnostics plus détaillés, activez la journalisation directement dans PHP, particulièrement utile lorsque l'erreur provient du code et n'apparaît pas dans les journaux du serveur web.

Pour ce faire, définissez les valeurs suivantes dans le fichier php.ini :

display_errors = Off

log_errors = On

error_log = /var/log/php_errors.log

Ici :

  • display_errors — supprime l'affichage des erreurs dans le navigateur

  • log_errors — écrit les erreurs dans un fichier journal

  • error_log — chemin d'accès au fichier journal (PHP doit avoir les permissions d'écriture)

Emplacements typiques du fichier php.ini :

  • Debian/Ubuntu : /etc/php/*/apache2/php.ini ou /etc/php/*/cli/php.ini

  • CentOS/AlmaLinux : /etc/php.ini

Ou localisez-le via :

php -i | grep "php.ini"

Dans FASTPANEL : ouvrez la carte du site → « Paramètres PHP », recherchez des variables telles que display_errors, modifiez leurs valeurs et cliquez sur « Enregistrer ».

  1. Vérifiez le fichier .htaccess

Si l'erreur est apparue après avoir modifié .htaccess, restaurez le fichier à son état précédent.

Si vous n'êtes pas sûr de ce qui a été modifié exactement, renommez temporairement .htaccess (par exemple, en .htaccess.bak) — si l'erreur disparaît, le problème vient de ce fichier.

Dans ce cas, essayez de restaurer le fichier .htaccess à partir d'une sauvegarde si disponible, ou utilisez le fichier .htaccess par défaut pour votre CMS, que vous pouvez obtenir ici.

  1. Vérifiez les permissions et la propriété des fichiers

Des permissions inappropriées peuvent déclencher une erreur 500. Assurez-vous que la racine du site et tous les sous-fichiers ont les droits et le propriétaire corrects :

ls -laR /chemin/vers/la/racine/de/votre/site

Permissions recommandées :

  • Pour les répertoires : 755 — lecture, écriture et exécution pour le propriétaire ; lecture et exécution pour les autres.

  • Pour les fichiers : 644 — lecture et écriture pour le propriétaire ; lecture seule pour les autres.

Propriété :

Les fichiers et les dossiers doivent appartenir à l'utilisateur du serveur web (par exemple, www-data ou apache).

Si nécessaire, vous pouvez ajuster les permissions et la propriété à l'aide des commandes suivantes :

  • Placez-vous dans le répertoire racine de votre site :
cd /chemin/vers/le/repertoire/racine/du/site
  • Définissez la propriété et les permissions correctes :
sudo chown -R yoursituser:yoursituser . && sudo chmod 644 . -R && sudo chmod +X . -R

Veuillez remplacer yoursituser par l'utilisateur et le groupe réels qui possèdent votre site.

  1. Désactiver les plugins et les thèmes.

Pour les sites basés sur un CMS comme WordPress, une erreur 500 provient souvent de conflits de plugins ou de thèmes. Désactivez tous les plugins et passez à un thème par défaut pour voir si cela résout le problème.

  1. Assurez-vous que le serveur dispose de ressources libres suffisantes pour vos sites.
  • Vérifiez que vous disposez de suffisamment d'espace disque libre :
sudo df -h
  • Vérifiez que le serveur n'a pas épuisé ses inodes :
sudo df -ih
  • Vérifiez que le serveur dispose de suffisamment de RAM :
sudo free -mh
  • Vérifiez la charge CPU actuelle :
sudo ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
  • Alternativement, ouvrez le moniteur de processus avec la commande :
sudo top

Si vous manquez d'espace disque ou d'inodes, vous pouvez identifier quels fichiers et répertoires consomment le plus d'espace en suivant les instructions de l'article pertinent.

Si la charge de la RAM ou du CPU est excessivement élevée, les causes peuvent varier. Commencez votre investigation par le blocage des bots des moteurs de recherche, car ils sont souvent la source d'une charge élevée.

  1. Vérifiez que le SGBD est sain.

Le plus souvent, il s'agira de MySQL ; voici quelques étapes rapides pour vérifier si vos bases de données sont en ordre.

  • Confirmez que le service MySQL est en cours d'exécution :
sudo systemctl status mysql
  • Vérifiez le journal d'erreurs MySQL :
sudo grep -i error /var/log/mysql/error.log
  • Vérifiez toutes les bases de données pour les erreurs :
mysqlcheck -A -c

Si des erreurs sont trouvées, assurez-vous d'abord d'avoir des sauvegardes des bases de données affectées. Si nécessaire, créez un dump avec :

mysqldump -u [utilisateur] -p [nom_base_de_donnees] > /chemin/vers/fichier/dump.sql
  • Remplacez [utilisateur] par le nom d'utilisateur MySQL.

  • Remplacez [nom_base_de_donnees] par le nom de la base de données que vous souhaitez exporter.

  • /chemin/vers/dump.sql est le chemin où le fichier dump sera enregistré.

Après cela, exécutez la procédure de correction des erreurs avec mysqlcheck :

mysqlcheck -A --auto-repair -c
  1. Contactez votre fournisseur d'hébergement.

Si vous n'êtes pas en mesure d'identifier le problème, il peut être utile de contacter le support de votre fournisseur d'hébergement. Cela peut aider à identifier les problèmes sur le serveur qui ne sont pas visibles au niveau de l'utilisateur. Vous pouvez en apprendre davantage sur la façon de choisir le bon fournisseur d'hébergement dans cet article.


Conclusion

L'erreur 500 n'est pas un verdict définitif pour votre site web. Grâce à des outils de diagnostic de base, vous pouvez rapidement identifier la cause et résoudre le problème. Si vous n'êtes pas sûr de vos capacités, vous pouvez toujours vous adresser à des spécialistes. Il est important de se rappeler qu'une erreur 500 trouvée et corrigée à temps vous aidera à éviter des problèmes plus graves à l'avenir.