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.
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
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. 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 dans votre panel en cliquant sur l’option Site Summary / Statistics / Logs. 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)
- Écrire (w pour write)
- Exécuter (x pour execute)
- Propriétaire du fichier
- Groupe d’utilisateurs
- Tous les autres
755 Pour les dossiers 644 pour les fichiers
Vérifiez ensuite si vos scripts fonctionnent correctement (sauf lorsque 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 parce qu’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. Écrivez 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. Dans le cas où 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 par ailleurs 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 ( connecter vous à votre panel puis cliquer sur sélectionnée une version de php puis sur php option ) :
memory_limit = 512M