Cet article vous a plu?
1
Cet article vous a plu?
1

HTTP-Error 500 : d’où vient le problème ?

Les codes de statut HTTP informent si une requête sur Internet est fructueuse, et indiquent l’erreur si ce n’est pas le cas. Toutefois, ces messages d’erreur ne sont pas toujours clairs. Cela vaut particulièrement pour le message d’erreur « 500 Internal Server Error ». Ce message d’erreur indique qu’une erreur s’est produite pendant la connexion au serveur et, par conséquent, la page demandée ne peut pas être chargée. Cependant on n’apprend pas la cause exacte. Heureusement, il existe différentes méthodes pour trouver l’origine d’un tel problème. Nous soulignons dans cet article les sources typiques d’erreurs et fournissons des conseils sur la façon de réagir lorsque vous rencontrez l’erreur HTTP 500.

Que signifie le code Internal Server Error ?

Avec ce code de statut, le serveur Web indique au navigateur (client) d’un internaute si une requête (ou le chargement d’un site Web) aboutit ou non. Si le navigateur obtient le statut 200, cela signifie que tout s’est bien passé. L’utilisateur ne voit pas ce message, mais le contenu demandé apparaît à la place. Cela est différent avec les codes 400 et 500. Tandis que les erreurs du premier groupe (400) renvoient au client, ceux du deuxième groupe (500) dépendent du serveur. L’Internal Server Error 500 est un code de statut rassemblant les erreurs de serveur. Par conséquent, à première vue, il n’est pas possible de voir où réside l’erreur. Vous ne rencontrez que ce qui suit : le serveur signale une erreur inattendue.

Si toutefois le service d’information Microsoft (Microsoft IIS) est installé côté serveur, le code d’erreur est spécifié. Les décimales après la virgule indiquent plus en détail la cause de l’erreur :

  • 500.0 : il manque un module ou un ISAPI
  • 500.11 : une application est actuellement en cours d’exécution sur le serveur
  • 500.12 : une application est redémarrée sur le serveur
  • 500.13 : le serveur Web est actuellement pleinement utilisé
  • 500.15 : une demande directe pour le fichier (optionnel) global.asax n’est pas autorisée
  • 500.19 : les données de configuration sont invalides
  • 500.22 : une configuration du module HTTP (dans une application Web ASP.NET) ne s’applique pas au mode Pipeline
  • 500.23 : une configuration de gestionnaire HTTP (dans une application Web ASP.NET) n’est pas applicable en mode Pipeline managé
  • 500.24 : une configuration de changement d’identité (pour ASP.NET) ne peut pas être utilisée en mode Pipeline géré
  • 500.50 : une erreur s’est produite lors de la réécriture pendant le traitement de la notification RQ_BEGIN_REQUEST
  • 500.51 : une erreur s’est produite lors de la réécriture pendant le traitement de la notification RQ_PRE_BEGIN_REQUEST
  • 500.52 : une erreur s’est produite lors de la réécriture pendant le traitement de la notification RQ_SEND_RESPONSE
  • 500.53 : une erreur s’est produite lors de la réécriture pendant le traitement de la notification RQ_RELEASE _REQUEST_STATE
  • 500.100 : une erreur s’est produite dans le moteur ASP

Qu’est-ce qui provoque l’erreur 500 ?

L‘erreur « Internal Server Error » peut se produire lorsque la requête est traitée par le serveur Web. Ce groupe de codes de statut comprend tout ce qui se passe involontairement sur le serveur, empêchant l’affichage du site. L’erreur server 500 se produit probablement car une erreur s’est produite lors de la configuration du serveur Web. Voici une sélection de sources typiques d’erreurs :

  • Erreur de permission : les autorisations des fichiers et des dossiers principaux ne sont pas définies correctement
  • PHP-Timeout : le script tente d’accéder à une ressource externe et éprouve un délai d’attente
  • Code incorrect dans .htaccess : la structure dans un fichier .htaccess peut être incorrecte
  • Erreur dans la syntaxe ou du code dans les scripts CGI/Perl : dans certains cas, les scripts sont incorrects. Les chemins peuvent notamment être mal situés.
  • PHP-Memory-Limit : un processus dépasse la mémoire et ne peut pas être exécuté correctement

Avec des pages WordPress ou d’autres systèmes de gestion de contenu, l’installation d’une extension défectueuse ou incompatible peut aussi être la cause. Plugins et thèmes, en particulier de fournisseurs tiers, peuvent affecter l‘intégralité du site.

Comment les Webmasters peuvent corriger une « 500 Internal Server Error » ?

Les visiteurs de votre site Web ne voient plus le contenu, mais seulement l’erreur du serveur 500 ? En tant qu’exploitant de site Internet, vous devriez directement aborder le problème, car ce ne sera pas seulement énervant pour les visiteurs de votre site, Google pourrait aussi décider de vous pénaliser au niveau du référencement. Avant d’effectuer la moindre action en tant que Webmaster, vérifiez d’abord si votre serveur fonctionne toujours. Sinon, un contact rapide avec votre fournisseur d’hébergement est nécessaire.

S’il y a une erreur interne, regardez d’abord les fichiers log : pour les serveurs Linux, la collecte des messages d’erreur se trouve sous /var/log/httpd/error_log. Il est pour cela utile de recharger le site Web pour reproduire l’erreur HTTP 500, tout en observant la création du fichier Log. Vous pouvez ainsi trouver la source de l’erreur assez rapidement. Dans de nombreux cas, les plugins incorrectement programmés ou incompatibles fournissent des messages d’erreur.

L’erreur peut également se produire si vous n’avez pas défini correctement les autorisations pour les fichiers importants. Il existe généralement trois types de droits :

  • Lire (r pour read)
  • Ecrire (w pour write)
  • Exécuter (x pour execute)

Ces autorisations peuvent être attribuées à trois types d’utilisateurs différents :

  • Propriétaire du fichier
  • Groupe d’utilisateurs
  • Tous les autres

Les droits sont indiqués soit par les abréviations r, w et x soit par les valeurs numériques correspondantes : 4 pour lire, 2 pour écrire et 1 pour exécuter. Ils sont ajoutés pour chaque type d’utilisateur et sont donnés l’un après l’autre : rwxr-xr-x (rwx pour le propriétaire, r-x pour le groupe et  r-x pour tous les autres) ou 755. Cette configuration (aussi 755) devrait être le paramétrage standard. Si l’affectation des droits est définie différemment, l’erreur peut se produire. Vous pouvez modifier ceci avec une commande :

chmod 755 nom du fichier

Si cette modification ne change pas le problème, vous pouvez également partager tous les droits pour chaque groupe à des fins de test :

chmod 755 nom du fichier

Utilisez ce paramètre uniquement pour localiser le problème. Cela permet à tout utilisateur de réécrire le fichier, ce qui est naturellement un risque pour la sécurité.

Vérifiez ensuite si vos scripts fonctionnent correctement (sauf si la distribution des droits a produit le message d’erreur). Parfois, des erreurs se produisent car les fichiers scripts ont été déplacés, renommés ou supprimés. Vérifiez aussi le fichier .htaccess car une erreur de syntaxe, aussi petite soit-elle, peut générer une erreur interne au niveau du serveur. Une erreur également courante est la mise en forme incorrecte du fichier .htaccess. Ce dernier doit être créé au format ASCII ou ANSI, mais comme Unicode. Ecrivez par conséquent le fichier dans un éditeur de texte tel que Notepad, Notepadd++ ou Sublime Text, et pas dans un programme de traitement de texte tel que Microsoft Word. Afin de tester si le fichier est responsable de l’erreur, vous pouvez le renommer et le recharger temporairement. Le serveur n’accédera pas à .htaccess pendant le chargement du site. Si le message d’erreur ne se produit plus, vous pouvez réparer le fichier ou en créer un nouveau.

Enfin, un délai d’attente peut également conduire au message d’erreur. Dans ce cas, ce n’est pas une erreur du serveur Web, mais plutôt une connexion interrompue à une source externe. Les scripts PHP sur votre site sont-ils configurés pour vous permettre d‘accéder aux ressources d’autres serveurs ? La ressource peut ne pas être disponible, ou la communication du serveur est perturbée pour une autre raison. Une possibilité pour exclure cette source d’erreur est de rendre votre page indépendante des ressources externes. Si cela n’est pas possible, vous pouvez augmenter le délai de votre script. Il est en outre pertinent d’inclure une gestion efficace des erreurs, de sorte que les erreurs dans le script PHP puissent être détectées plus rapidement.

La mémoire peut-elle être surchargée ? La limite de mémoire est utilisée pour déterminer la quantité de mémoire qu’un processus peut prendre. Si plus de RAM est nécessaire, une erreur interne du serveur peut en résulter. Vous pouvez définir la limite comme une solution temporaire. Pour ce faire, ajouter une commande au php.ini selon ce modèle :

memory_limit = 512M

Dans cet exemple, vous mettez 512 Mo de mémoire à disposition. Gardez toutefois à l’esprit que votre fournisseur d’hébergement vous offre une limite de script PHP spécifique dans l’offre réservée. Si vous entrez une valeur plus élevée, le serveur Web l’ignorera. Le réglage de la limite ne peut être qu’une solution de transition : une fois que votre page réapparaît, vous devriez rechercher le motif du fort besoin en RAM. Il est fort probable que l’erreur se trouve dans le code de votre site.

Si parmi les méthodes ci-dessus vous ne parvenez pas à trouver une solution, il est judicieux de contacter votre fournisseur d’hébergement. Avant de pouvoir vérifier l’état des serveurs : de nombreux fournisseurs de services d’hébergement annoncent l’état de leurs serveurs via une page d’état ou informent les utilisateurs via les réseaux sociaux en cas de problème.

Conseil

1&1 a aussi une page de statut, sur laquelle le client de l’offre d‘hébergement peut se tenir informé de problèmes actuels éventuels.

Si des problèmes de serveur sont déjà connus, vous devez faire preuve de patience : il ne vous reste plus qu’à attendre que l’équipe IT de l’hébergeur corrige le bug. Mais même si aucun problème avec les serveurs n’est connu, un contact avec l’assistance peut être utile. Faites-leur savoir quelles mesures vous avez déjà prises. Vous pouvez ainsi vous faire aider rapidement.

Comment des internautes peuvent-ils réagir à une erreur HTTP 500 ?

En tant que visiteur d’un site Web, vous ne pouvez en principe pas faire grand-chose si vous rencontrez une erreur de serveur interne. Le serveur Web sur lequel se trouve le site Web ciblé renvoie à une configuration défectueuse. Cela signifie qu’il n’y a pas d’erreur dans les paramètres de votre PC ou de la connexion réseau. Par conséquent, en tant qu’internaute, la solution la plus simple est de recharger la page ultérieurement. D’une part, il se peut que le Webmaster ait déjà corrigé l’erreur. Ceci est particulièrement probable avec de gros fournisseurs. En revanche, il est aussi probable que vous souhaitiez accéder à un contenu au mauvais moment. Si vous arrivez au moment où le service redémarre, le message d’erreur s’affiche, bien que tout se passe selon le plan.

Note

Si vous êtes confronté à un message d’erreur lors d’un processus de commande en ligne, ne rechargez pas la page Web. Vous ne pouvez pas voir à quel stade l’erreur s’est produite. Eventuellement, la commande a déjà été enregistrée par le système, même si vous n’avez pas pu charger la page de confirmation. Un rafraichissement de la page pourrait dans ce cas conduire à une double commande du produit en question.

Ce problème est la plupart du temps résolu en quelques secondes : à moins que le site Web ne soit surchargé en permanence. Si vous voyez toujours le message d’erreur après avoir actualisé la page, vous devez d’abord supprimer le cache de votre navigateur. Le navigateur ne peut pas recharger le site, mais accède à sa mémoire interne. Une fois que le cache effacé, essayez à nouveau d’accéder au site.

Si le message d’erreur « 500 Internal Server Error » est encore affiché, vous ne pouvez rien faire d’autre que d’attendre que l’opérateur du site Internet corrige le problème. Avec une petite astuce cependant, vous pouvez toujours visionner du contenu sur cette page Web. Si vous n’avez pas la dernière version de la page (en cours d’utilisation), vous pouvez accéder au cache de Google. Si vous tapez la commande cache: dans la barre de recherche de Google, suivie de l’URL correspondante, vous pouvez accéder à la version précédente de la page (qui fonctionne encore peut-être). Vous ne surfez cependant pas réellement sur la page, mais vous vous déplacez sur une copie qui se trouve sur le serveur de Google.

Si vous devez revenir en arrière, regardez la Wayback Machine des archives Internet. Vous pourrez y trouver des décennies d’anciennes versions de sites Web.

Si le site Web que vous visitez n’est pas accessible pendant une longue période, vous pouvez également contacter le Webmaster. Cela peut ne pas être perceptible du tout pour d’autres utilisateurs : c’est pourquoi ils seront heureux de votre remarque.

HTTP Protocoles