L’erreur redoutée 500 Internal Server. Elle semble toujours venir au moment le plus inopportun et vous vous retrouvez soudain à faire des pieds et des mains pour trouver comment remettre votre site en ligne. Croyez-nous, nous sommes tous passés par là.

Dès que votre site tombe en panne, vous perdez des visiteurs et des clients. Sans compter que cela nuit à l’image de votre marque. Nous allons donc nous pencher aujourd’hui sur l’erreur « 500 Internal Server Error » (erreur interne du serveur) et vous présenter quelques méthodes pour rétablir rapidement votre site.

Code d’erreur Erreur HTTP 500
Type d’erreur Code d’erreur
Variations de l’erreur « 500 Internal Server Error »
« HTTP 500 »
« Erreur de serveur interne »
« HTTP 500 – Erreur de serveur interne »
« Erreur 500 »
« Erreur HTTP 500 »
« 500 – Erreur de serveur interne »
« 500 Internal Server Error. Désolé, quelque chose s’est mal passé. »
« 500. C’est une erreur. Il y a eu une erreur. Veuillez réessayer plus tard. C’est tout ce que nous savons. »
« Le site web ne peut pas afficher la page – HTTP 500. »
« Est actuellement incapable de traiter cette requête. ERREUR HTTP 500. »
Causes de l’erreur Cache du navigateur.
Fichier .htaccess corrompu et limite de mémoire PHP.
Problèmes avec des extensions et des thèmes tiers.
Fichiers corrompus dans votre installation WordPress.
Problèmes avec votre serveur de base de données.

Qu’est-ce qu’une erreur 500 Internal Server ?

Le code d’état HTTP 500 est un message général indiquant que le serveur a rencontré une situation imprévue l’empêchant de traiter la requête. Cette erreur survient lorsque le serveur détecte un problème mais n’est pas en mesure d’en préciser la nature exacte.

Lorsque vous consultez un site, votre navigateur envoie une requête au serveur qui héberge ce site. Le serveur reçoit cette requête, la traite et renvoie les ressources demandées (PHP, HTML, CSS, etc.) accompagnées d’un en-tête HTTP.

Cet en-tête HTTP inclut ce que l’on appelle un code d’état HTTP. Ce code sert à vous informer de l’état de la requête. Il peut s’agir d’un code 200, signifiant que tout est en ordre, ou d’un code 500, indiquant qu’un problème est survenu.

Il existe de nombreux types de codes d’erreur de la série 500 (500, 501, 502, 503, 504, etc.), chacun ayant une signification différente. Dans ce cas précis, l’erreur interne du serveur 500 indique que le serveur a rencontré une situation imprévue l’empêchant de traiter la requête (RFC 7231, section 6.6.1).Variations des erreurs 500 Internal Server

Variantes de l’erreur 500 Internal Server

Erreur 500 Internal Server dans WordPress
Erreur 500 Internal Server dans WordPress

En raison des différents serveurs web, systèmes d’exploitation et navigateurs, une erreur 500 Internal Server peut se présenter de différentes manières. Mais elles communiquent toutes la même chose. Vous trouverez ci-dessous quelques-unes des nombreuses variantes que vous pouvez voir sur le web :

  • “500 Internal Server Error”
  • “HTTP 500”
  • “Internal Server Error”
  • “HTTP 500 – Internal Server Error”
  • “500 Error”
  • « HTTP Error 500 »
  • “500 – Internal Server Error”
  • “500 Internal Server Error. Sorry something went wrong.”
  • “500. That’s an error. There was an error. Please try again later. That’s all we know.”
  • “The website cannot display the page – HTTP 500.”
  • « Is currently unable to handle this request. HTTP ERROR 500. »

Vous pourriez également voir ce message l’accompagnant :

Le serveur a rencontré une erreur interne ou une mauvaise configuration et n’a pas été en mesure de compléter votre demande. Veuillez contacter l’administrateur du serveur, [email protected] et les informer de l’heure à laquelle l’erreur s’est produite, et de tout ce que vous avez pu faire qui a pu causer l’erreur. Plus d’informations sur cette erreur peuvent être disponibles dans le journal des erreurs du serveur.

Erreur interne du serveur
Erreur interne du serveur

D’autres fois, vous pourriez simplement voir un écran blanc blanc. Lorsqu’il s’agit de 500 erreurs de serveur interne, c’est en fait assez courant dans des navigateurs comme Firefox et Safari.

Erreur 500 internal server dans Firefox
Erreur 500 internal server dans Firefox

Les grandes marques peuvent même avoir leurs propres messages d’erreur 500 Internal Server personnalisées, comme celle d’Airbnb.

Airbnb 500 internal server error
Airbnb 500 internal server error

Voici un autre exemple d’erreur 500 créative des gens de Readme.

Erreur 500 chez readme
Erreur 500 chez readme

Même le puissant YouTube n’est pas à l’abri des erreurs 500 de serveur interne.

Erreur 500 chez YouTube
Erreur 500 chez YouTube

Si c’est un serveur IIS 7.0 (Windows) ou supérieur, ils ont des codes d’état HTTP supplémentaires pour indiquer plus précisément la cause de l’erreur 500 :

  • 500.0 – Module or ISAPI error occurred.
  • 500.11 – Application is shutting down on the web server.
  • 500.12 – Application is busy restarting on the web server.
  • 500.13 – Web server is too busy.
  • 500.15 – Direct requests for global.asax are not allowed.
  • 500.19 – Configuration data is invalid.
  • 500.21 – Module not recognized.
  • 500.22 – An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.
  • 500.23 – An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.
  • 500.24 – An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.
  • 500.50 – A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.
  • 500.51 – A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.
  • 500.52 – A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.
  • 500.53 – A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.
  • 500.100 – Internal ASP error.

Quelles sont les causes d’une erreur interne du serveur 500 ?

Les erreurs internes du serveur 500 peuvent avoir de multiples origines. Si vous rencontrez ce problème, il est fort probable que l’un (ou plusieurs) des éléments suivants en soit la cause :

  • Cache du navigateur.
  • Identifiants de connexion à la base de données incorrects.
  • Base de données corrompue.
  • Fichiers corrompus dans votre installation WordPress.
  • Problèmes liés à votre serveur de base de données.
  • Fichiers principaux de WordPress corrompus.
  • Fichier .htaccess corrompu et limite de mémoire PHP. Problèmes liés aux extensions et thèmes tiers.
  • Dépassement du délai d’exécution PHP ou erreurs fatales PHP avec des extensions tierces.
  • Permissions de fichiers et de dossiers incorrectes.
  • Limite de mémoire PHP atteinte sur votre serveur.
  • Fichier .htaccess corrompu ou défectueux.
  • Erreurs dans les scripts CGI et Perl. 

Impact des erreurs 500 sur le SEO

Contrairement aux erreurs 503, qui sont utilisées pour le mode de maintenance WordPress et disent à Google de vérifier plus tard, une erreur 500 peut avoir un impact négatif sur le référencement si elle n’est pas corrigée immédiatement.

Si votre site n’est en panne que pendant 10 minutes et qu’il est constamment parcouru à plusieurs reprises, le robot d’exploration fera simplement sortir la page du cache. Ou encore, Google n’a peut-être même pas la possibilité de réessayer avant qu’elle ne soit sauvegardée. Dans ce scénario, tout va bien.

Toutefois, si le site est en panne pendant une période prolongée, disons 6 heures et plus, Google pourrait considérer l’erreur 500 comme un problème au niveau du site qui doit être réglé. Cela pourrait avoir un impact sur votre classement. Si vous craignez de répéter les erreurs 500, vous devriez comprendre pourquoi elles se produisent au départ. Certaines des solutions ci-dessous peuvent vous aider.

Vos sites préférés sont-ils inaccessibles ? Il pourrait s’agir d’une panne majeure d’Internet.

Parfois, une « erreur interne 500 du serveur » (500 Internal Server Error) n’est pas causée par votre site WordPress, vos extensions ou la configuration de votre serveur.

Lorsqu’un incident survient chez des fournisseurs d’infrastructures Internet majeurs — comme Cloudflare (qui a récemment provoqué des erreurs 500 généralisées lors de pannes) ou lors d’une perturbation majeure d’une plateforme cloud — de nombreux sites sans lien entre eux peuvent tomber en panne simultanément. Les symptômes peuvent alors ressembler trait pour trait à un problème côté serveur classique : erreurs 500, 502, 503, 520 et délais d’attente dépassés (timeouts).

Si vous êtes propriétaire d’un site, l’étape la plus importante consiste à vérifier si le problème est généralisé. Consultez les pages d’état des fournisseurs en amont (comme celles de Cloudflare ou d’AWS) ainsi que la page d’état de votre hébergeur avant d’effectuer des modifications de configuration.

En cas de panne généralisée, il est préférable d’éviter de modifier les extensions, les réglages du serveur ou les enregistrements DNS, car la plupart des sites touchés se rétablissent automatiquement une fois le problème sous-jacent résolu.

Kinsta surveille en permanence les événements réseau mondiaux et publie des mises à jour sur sa page d’état lorsque des incidents affectent la plateforme. Une fois la panne résolue, votre site devrait retrouver un fonctionnement normal sans intervention de votre part. Si les erreurs 500 persistent par la suite, suivez les étapes de dépannage ci-dessous pour identifier un problème distinct, ou contactez le support pour obtenir de l’aide.

Comment réparer l’erreur 500 Internal Server ?

Où devriez-vous commencer le dépannage lorsque vous voyez une erreur 500 Internal Server sur votre site ? Parfois, vous ne savez même pas par où commencer. Généralement les erreurs 500 sont sur le serveur lui-même, mais d’après notre expérience, ces erreurs proviennent de deux choses, la première est l’erreur de l’utilisateur (problème côté client), et la seconde est qu’il y a un problème avec le serveur. Nous allons donc plonger dans les deux cas.

https://twitter.com/Carnage4Life/status/1177095951728562177

Vérifiez ces causes communes et les moyens de réparer l’erreur 500 Internal Server et de le remettre en service en un rien de temps.

1. Essayez de recharger la page

Cela peut sembler un peu évident pour certains, mais l’une des choses les plus simples et les premières que vous devriez essayer lorsque vous rencontrez une erreur 500 Internal Server est simplement d’attendre une minute ou deux et de recharger la page (F5 ou Ctrl + F5). Il se peut que l’hébergeur ou le serveur soit simplement surchargé et que le site revienne tout de suite. Pendant que vous attendez, vous pouvez aussi essayer rapidement un autre navigateur pour éliminer ce problème.

Une autre chose que vous pouvez faire est de coller le site Web dans downforeveryoneorjustme.com. Ce site Web vous indiquera si le site est en panne ou s’il s’agit d’un problème de votre côté. Un outil comme celui-ci vérifie le code d’état HTTP renvoyé par le serveur. S’il s’agit d’autre chose qu’un 200 « Everything is OK » alors il retournera une indication disant que votre site est « down ».

Down For Everyone Or Just Me
Down For Everyone Or Just Me

Nous avons également remarqué que cela peut parfois se produire immédiatement après la mise à jour d’une extension ou d’un thème sur votre site. Généralement, il s’agit d’hôtes qui ne sont pas correctement configurés. Ce qui se passe, c’est qu’ils subissent un temps d’arrêt temporaire juste après. Cependant, les choses se résolvent généralement en quelques secondes et donc rafraîchir est tout ce que vous avez besoin de faire.

2. Effacer la mémoire cache de votre navigateur

La suppression de la mémoire cache de votre navigateur est toujours une autre bonne étape de dépannage avant de plonger dans un débogage plus profond de votre site. Vous trouverez ci-dessous des instructions sur la façon de vider le cache dans les différents navigateurs :

3. Vérifier les logs de votre serveur

Vous devriez également profiter de vos logs d’erreurs. Si vous êtes un client Kinsta, vous pouvez facilement voir les erreurs dans le visualiseur de logs dans le tableau de bord MyKinsta. Cela peut vous aider à résoudre rapidement le problème, surtout s’il résulte d’une extension sur votre site.

Dans MyKinsta, sélectionnez Sites, choisissez l’environnement WordPress que vous souhaitez examiner, puis cliquez sur Journaux dans le menu de gauche. Vous pouvez rechercher les rapports d’erreur interne du serveur 500 parmi les entrées de l’onglet error.log.

Vérifier les logs d'erreurs pour l’erreur 500 Internal Serveur
Vérifier les logs d’erreurs pour l’erreur 500 Internal Serveur

Si votre hébergeur ne dispose pas d’un outil de journalisation, vous pouvez également activer le mode de débogage de WordPress en ajoutant le code suivant à votre fichier wp-config.php pour activer la journalisation :

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

Les logs sont généralement situés dans le répertoire /wp-content. D’autres, comme ici chez Kinsta, peuvent avoir un répertoire dédié appelé « logs ».

Dossier des logs d'erreurs WordPress (SFTP)
Dossier des logs d’erreurs WordPress (SFTP)

Vous pouvez aussi vérifier les fichiers logs dans Apache et Nginx, qui sont généralement situés ici :

  • Apache : /var/log/apache2/error.log
  • Nginx : /var/log/nginx/error.log

Si vous êtes un client Kinsta, vous pouvez également profiter de notre outil d’analyse pour obtenir un aperçu du nombre total d’erreurs 500 et voir à quelle fréquence et à quel moment elles se produisent. Après avoir sélectionné votre site, cliquez sur Analyses dans le menu de gauche, puis sur l’onglet Réponse et faites défiler la page jusqu’à la section Ventilation des erreurs 500 :

Analyse de la répartition des réponse 500
Analyse de la répartition des réponse 500

Cela peut vous aider à déterminer s’il s’agit d’un problème persistant ou d’un incident qui s’est résolu de lui-même.

Si l’erreur 500 s’affiche à cause d’une erreur PHP fatale, vous pouvez également essayer d’activer le rapport d’erreur PHP. Il suffit d’ajouter le code suivant au fichier contenant l’erreur. Généralement, vous pouvez réduire le fichier dans l’onglet console de Google Chrome DevTools.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Et vous devrez peut-être aussi modifier votre fichier php.ini avec ce qui suit :

display_errors = on

4. Erreur lors de l’établissement de la connexion à la base de donnée

Les erreurs 500 Internal Server peuvent également se produire à partir d’une erreur de connexion à la base de données. En fonction de votre navigateur, vous pouvez voir différentes erreurs. Mais les deux généreront un code d’état http 500 quel que soit le contenu de vos logs serveur.

Voici un exemple de ce à quoi ressemble un message d’erreur lors de l’établissement d’une connexion à une base de données. La page entière est vide parce qu’aucune donnée ne peut être récupérée pour afficher la page, car la connexion ne fonctionne pas correctement. Non seulement cela brise le l’interface publique de votre site, mais cela vous empêchera aussi d’accéder à votre tableau de bord WordPress.

Exemple d'erreur lors de la connexion à la base de données
Exemple d’erreur lors de la connexion à la base de données

Alors pourquoi cela se produit-il exactement ? Eh bien, voici quelques raisons courantes ci-dessous.

  • Le problème le plus courant est que les informations d’identification de votre base de données sont incorrectes. Votre site utilise des informations de connexion séparées pour se connecter à sa base de données MySQL.
  • Votre base de données WordPress est corrompue. Avec tant de pièces mobiles avec des thèmes, des extensions et des utilisateurs qui les suppriment et les installent constamment, les bases de données sont parfois corrompues. Cela peut être dû à une table manquante ou corrompue individuellement, ou peut-être que certaines informations ont été supprimées par accident.
  • Vous pouvez avoir des fichiers corrompus dans votre installation WordPress. Cela peut même se produire parfois à cause de pirates informatiques.
  • Problèmes avec votre serveur de base de données. Un certain nombre de choses peuvent être erronées du côté des hébergeurs web, comme le fait que la base de données soit surchargée à cause d’un pic de trafic ou qu’elle ne réponde pas à cause d’un trop grand nombre de connexions simultanées. C’est en fait assez commun avec les hébergeurs mutualisés car ils utilisent les mêmes ressources pour un grand nombre d’utilisateurs sur les mêmes serveurs.

Consultez notre article détaillé sur la façon de corriger l’erreur lors de la connexion à une base de données.

5. Vérifiez vos extensions et votre thème

Les extensions et thèmes tiers peuvent facilement causer des erreurs 500 Internal Server. Nous avons vu tous les types de causes ici chez Kinsta, depuis les extensions de diaporama jusqu’aux extensions de publicités. Souvent, vous devriez voir l’erreur immédiatement après l’installation de quelque chose de nouveau ou l’exécution d’une mise à jour. C’est l’une des raisons pour lesquelles nous recommandons toujours d’utiliser un environnement de staging pour les mises à jour ou du moins exécuter les mises à jour une par une. Sinon, si vous rencontrez une erreur 500 Internal Server, vous serez soudainement en train de faire des pieds et des mains pour déterminer laquelle est la cause de l’erreur.

Vous pouvez résoudre ce problème de plusieurs façons en désactivant toutes vos extensions. Rappelez-vous que vous ne perdrez aucune donnée si vous désactivez simplement une extension. Si vous pouvez toujours accéder à votre administration, un moyen rapide de le faire est de vous rendre sur « Extensions » et de sélectionner « Désactiver » dans le menu des actions groupées. Ceci désactivera toutes vos extensions.

Désactiver toutes les extensions
Désactiver toutes les extensions

Si cela corrige le problème, vous devrez trouver la coupable. Commencez à les activer une par une, en rechargeant le site après chaque activation. Quand vous voyez le retour de l’erreur 500, vous avez trouvé l’extension qui se comporte mal. Vous pouvez alors contacter le développeur de l’extension pour obtenir de l’aide ou poster un ticket de support dans le répertoire WordPress.

Si vous êtes client Kinsta, vous pouvez accéder à l’extension Mises à jour automatiques Kinsta depuis le tableau de bord MyKinsta. Cela vous permet d’activer les mises à jour automatiques pour les thèmes et extensions de votre choix.

Si vous ne pouvez pas vous connecter à l’administration de WordPress, vous pouvez vous connecter par FTP à votre serveur et renommer votre répertoire d’extensions en quelque chose comme plugins_old. Puis vérifiez à nouveau votre site. Si cela fonctionne, vous devrez tester chaque extension une par une. Renommez votre dossier d’extensions en « plugins » puis renommez chaque dossier d’extension à l’intérieur, une par une, jusqu’à ce que vous trouviez la coupable. Vous pouvez aussi essayer de reproduire cela d’abord sur un site de staging.

Renommer le dossier d’extension
Renommer le dossier d’extension

Toujours s’assurer que vos extensions, thèmes et le cœur de WordPress sont à jour. Et vérifiez que vous utilisez une version supportée de PHP. S’il s’avère qu’il y a un conflit avec un mauvais code dans une extension, vous devrez peut-être faire appel à un développeur WordPress pour résoudre le problème.

6. Réinstaller le Cœur de WordPres

Parfois, les fichiers de base WordPress peuvent être corrompus, en particulier sur les sites plus anciens. Il est en fait assez facile de ne recharger que le cœur de WordPress sans impact sur vos extensions ou thèmes. Nous avons un guide détaillé avec 5 façons différentes de réinstaller WordPress. Et bien sûr, assurez-vous de prendre une copie de sauvegarde avant de procéder. Passez à l’une des sections ci-dessous :

7. Vérifiez les erreurs de permissions

Une erreur de permissions avec un fichier ou un dossier sur votre serveur peut également provoquer une erreur 500 Internal Server. Voici quelques recommandations typiques pour les permissions lorsqu’il s’agit des permissions de fichiers et de dossiers dans WordPress :

  • Tous les fichiers doivent être 644 (-rw-r-r-r-r-) ou 640.
  • Tous les dossiers doivent être 755 (drwxr-xr-xr-xr-x) ou 750.
  • Aucun dossier ne devrait jamais être en 777, même les dossiers de téléchargement.
  • Avancé : wp-config.php pourrait aussi être réglé à 440 ou 400 pour empêcher les autres utilisateurs du serveur de le lire.

Voir l’article du Codex WordPress sur la modification des permissions de fichiers pour une explication plus approfondie.

Vous pouvez facilement voir les permissions de vos fichiers avec un client FTP (voir ci-dessous). Vous pouvez également contacter votre équipe de support hébergeur et leur demander d’obtenir rapidement les permissions sur vos dossiers et fichiers pour s’assurer qu’ils sont correctement configurés.

Autorisations de fichiers SFTP
Autorisations de fichiers SFTP

8. Augmenter la limite de mémoire PHP

Une erreur 500 Internal Server peut également être causée par l’épuisement de la limite de mémoire PHP sur votre serveur. Vous pourriez essayer d’augmenter la limite. Suivez les instructions ci-dessous pour modifier cette limite dans cPanel, Apache, votre fichier php.ini et le fichier wp-config.php.

Augmenter la limite de mémoire PHP dans cPanel

Si vous utilisez sur un hébergeur qui utilise cPanel, vous pouvez facilement changer cela à partir de l’interface utilisateur. Sous Software, cliquez sur « Select PHP Version »

Sélectionner la version PHP
Sélectionner la version PHP

Cliquez sur  » Switch to PHP Options ».

Passer aux options PHP
Passer aux options PHP

Vous pouvez ensuite cliquer sur l’attribut memory_limit et modifier sa valeur. Cliquez ensuite sur « Save ».

Augmenter la limite de mémoire PHP dans cPanel
Augmenter la limite de mémoire PHP dans cPanel

Augmenter la limite de mémoire PHP dans Apache

Le fichier .htaccess est un fichier caché spécial qui contient divers paramètres que vous pouvez utiliser pour modifier le comportement du serveur, jusqu’à un niveau spécifique de répertoire.  Connectez-vous d’abord à votre site via FTP ou SSH, jetez un coup d’oeil à votre répertoire racine et voyez s’il y a un fichier .htaccess.

Fichier .htaccess
Fichier .htaccess

Si c’est le cas, vous pouvez modifier ce fichier pour ajouter le code nécessaire pour augmenter la limite de mémoire PHP. Il est très probablement réglé à 64M ou moins, vous pouvez essayer d’augmenter cette valeur.

php_value memory_limit 128M

Augmenter la limite de mémoire PHP dans le fichier php.ini

Si ce qui précède ne fonctionne pas pour vous, vous pouvez essayer d’éditer votre fichier php.ini file. Connectez-vous à votre site via FTP ou SSH, allez dans le répertoire racine de votre site et ouvrez ou créez un fichier php.ini.

Fichier php.ini
Fichier php.ini

Si le fichier était déjà là, recherchez les trois paramètres et modifiez-les si nécessaire. Si vous venez de créer le fichier, ou si les paramètres sont introuvables, vous pouvez coller le code ci-dessous. Vous pouvez bien sûr modifier les valeurs pour répondre à vos besoins.

memory_limit = 128M

Certains hébergeurs mutualisés peuvent également exiger que vous ajoutiez la directive su PHP dans votre fichier .htaccess pour que les paramètres du fichier php.ini ci-dessus fonctionnent. Pour ce faire, éditez votre fichier .htaccess également situé à la racine de votre site, et ajoutez le code suivant vers le haut du fichier :

<IfModule mod_suphp.c> 
suPHP_ConfigPath /home/yourusername/public_html
</IfModule>

Si ce qui précède n’a pas fonctionné pour vous, il se peut que votre hébergeur ait verrouillé les paramètres globaux et qu’il soit configuré pour utiliser les fichiers .user.ini Pour modifier votre fichier .user.ini, connectez-vous à votre site via FTP ou SSH, allez dans le répertoire racine de votre site et ouvrez ou créez un fichier .user.ini Vous pouvez ensuite coller le code suivant :

memory_limit = 128M

Augmenter la limite de mémoire PHP dans wp-config.ph

La dernière option n’est pas celle dont nous sommes fans, mais si tout le reste échoue, vous pouvez essayer. Tout d’abord, connectez-vous à votre site via FTP ou SSH, et localisez votre fichier wp-config.php, qui se trouve généralement à la racine de votre site.

fichier wp-config.php
fichier wp-config.php

Ajoutez le code suivant en haut de votre fichier wp-config.php :

define('WP_MEMORY_LIMIT', '128M');

Vous pouvez également demander à votre hébergeur si vous rencontrez des problèmes de limite de mémoire. Nous utilisons l’outil Kinsta APM et d’autres méthodes de dépannage ici chez Kinsta pour aider les clients à réduire le nombre d’extensions, de requêtes ou de scripts qui pourraient épuiser la limite. Vous pouvez également utiliser votre clé New Relic personnalisée depuis votre propre licence.

Débogage avec New Relic
Débogage avec New Relic

9. Corrigez votre fichier .htaccess

Kinsta n’utilise que Nginx, mais si vous utilisez un hébergeur qui exécute Apache, il se peut très bien que votre fichier .htaccess ait un problème ou soit corrompu. Suivez les étapes ci-dessous pour en recréer un nouveau à partir de zéro.

Tout d’abord, connectez-vous à votre site via FTP ou SSH, et renommez votre fichier .htaccess en .htaccess_old.

Renommer le fichier .htaccess
Renommer le fichier .htaccess

Normalement, pour recréer ce fichier, vous pouvez simplement réenregistrer vos permaliens dans WordPress. Cependant, si vous êtes au milieu d’une erreur 500 Internal Server, vous ne pouvez probablement pas accéder à votre administration WordPress, donc ce n’est pas une option. Par conséquent, vous pouvez créer un nouveau fichier .htaccess et saisir le contenu suivant. Ensuite, téléversez-le sur votre serveur.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Voir le Codex WordPress pour d’autres exemples, comme un fichier .htaccess par défaut pour le multisite.

10. Corrigez les erreurs de codage ou de syntaxe dans votre script CGI/Perl

Les erreurs 500 causées par des erreurs dans CGI et Perl sont beaucoup moins courantes qu’auparavant. Bien que cela vaille la peine d’être mentionné, surtout pour ceux qui utilisent cPanel où de nombreux scripts CGI en un clic sont encore utilisés. Comme le dit AEM sur Stack Overflow :

CGI a été remplacé par une grande variété de technologies de programmation web, y compris PHP, diverses extensions Apache comme mod_perl, Java de différentes saveurs et frameworks dont Java EE, Struts, Spring, etc, des frameworks basés sur Python comme Django, Ruby on Rails et beaucoup d’autres frameworks Ruby, et diverses technologies Microsoft.

Voici quelques conseils pour travailler avec les scripts CGI :

  • Lorsque vous modifiez, utilisez toujours un éditeur de texte brut, tel que Atom, Sublime, ou Notepad++. Ceci permet de s’assurer qu’ils restent au format ASCII.
  • Assurez-vous que les permissions correctes de chmod 755 sont utilisées sur les scripts et répertoires CGI.
  • Téléversez vos scripts CGI en mode ASCII (que vous pouvez sélectionner dans votre éditeur FTP) dans le répertoire cgi-bin de votre serveur.
  • Confirmez que les modules Perl dont vous avez besoin pour votre script sont installés et pris en charge.

11. Vérifiez les problèmes de serveur auprès de votre hébergeur

Enfin, parce que les erreurs 500 Internal Server peuvent également se produire à cause du Timeout PHP ou d’erreurs PHP fatales avec des extensions tierces, vous pouvez toujours vérifier avec votre hébergeur. Parfois, ces erreurs peuvent être difficiles à dépanner sans l’aide d’un expert. Voici quelques exemples courants d’erreurs qui déclenchent les codes d’état HTTP 500 sur le serveur et qui peuvent vous faire vous gratter la tête.

PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysql_error()...
PHP message: PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/folder/web/shared/content/plugins/plugin/functions.php:525

Nous surveillons tous les sites de nos clients ici chez Kinsta et sommes automatiquement avertis lorsque ces types d’erreurs se produisent. Cela nous permet d’être proactifs et de commencer à régler le problème immédiatement. Chaque site est hébergé dans son propre conteneur isolé, disposant de toutes les ressources logicielles nécessaires à son fonctionnement (Linux, Nginx, PHP, MySQL). Les ressources sont 100% privées et ne sont partagées avec personne d’autre ou même entre vos propres sites.

Les Timeouts PHP peuvent aussi provenir du manque de Threads PHP, bien que ceux-ci causent généralement des erreurs 504, et non des erreurs 500. Ceux-ci déterminent le nombre de demandes simultanées que votre site peut traiter à un moment donné. Pour le dire simplement, chaque requête non mise en cache pour votre site Web est traitée par un thread PHP.

Quand les threads PHP sont déjà occupés sur un site, ils commencent à constituer une file d’attente. Une fois que vous avez atteint votre limite de threads PHP, la file d’attente commence à repousser les demandes plus anciennes, ce qui pourrait entraîner des erreurs 500 ou demandes incomplètes. Lisez notre article de fond sur les Threads PHP.

Surveillez votre site

Si vous vous inquiétez de ce type d’erreurs sur votre site à l’avenir, vous pouvez également utiliser un outil comme updown.io pour surveiller et vous avertir immédiatement si elles se produisent. Il envoie périodiquement une requête HTTP HEAD à l’URL de votre choix. Vous pouvez simplement utiliser votre page d’accueil. L’outil vous permet de régler les fréquences de contrôle de :

  • 15 secondes
  • 30 secondes
  • 1 minute
  • 2 minutes
  • 5 minutes
  • 10 minutes

Il vous enverra un courriel si et quand votre site tombe en panne. Voici un exemple ci-dessous.

Notification par courriel d’erreurs 500
Notification par courriel d’erreurs 500

Cela peut être particulièrement utile si vous essayez de déboguer une extension défectueuse ou si vous êtes sur un hébergement mutualisé, qui ont tendance à sur-peupler leurs serveurs. Cela peut vous donner une preuve de la fréquence à laquelle votre site peut être en panne (même au milieu de la nuit).

Résumé

Les erreurs 500 Internal Server sont toujours frustrantes, mais nous espérons que vous connaissez maintenant quelques autres façons de les dépanner afin de remettre rapidement votre site en marche. Rappelez-vous, ces types d’erreurs sont généralement causés par des extensions tierces, des erreurs PHP fatales, des problèmes de connexion à la base de données, des problèmes avec votre fichier .htaccess ou les limites de mémoire PHP, et parfois des timeouts PHP.

Nous avons raté quelque chose ? Peut-être avez-vous un autre conseil sur le dépannage des erreurs 500 Internal Server. Si oui, faites-le nous savoir ci-dessous dans les commentaires.

Brian Jackson

Brian a une grande passion pour WordPress, l'utilise depuis plus de dix ans et développe même quelques plugins de qualité. Brian aime les blogs, les films et les randonnées. Connectez avec Brian sur Twitter.