Corriger un erreur 500 sur cPanel

Définition

Comment déboguer une page blanche ou une erreur 500

Lorsque vous essayez de visiter un site Web et que vous voyez le message d'erreur «500 internal server Error» , cela signifie qu'un incident s'est produit sur le site Web.
L'erreur est particulièrement frustrante car elle ne vous donne aucune information sur la cause spécifique de l'erreur.
Cet article vous montre comment déboguer une erreur 500 dans votre site web.

Procédure

Quelle est la différence entre page blanche et erreur 500 ?

Bien qu'il existe une grande différence entre une page blanche et une erreur 500, on a souvent tendance à considérer qu'il s'agit des mêmes erreurs. 

Certains navigateurs tel que Chrome et Internet Explorer affiche régulièrement une erreur 500 lorsqu'il tombe sur une page blanche. Cependant il est à noter que la page blanche n'a en général rien à voir avec une erreur 500. En effet, celle-ci s'affiche souvent lorsqu'aucune erreur PHP ne peut être affichée sur la page.

La plupart des erreurs 500 qui sont visible sur les sites internet sont dû à un problème de configuration du fichier .htaccess se trouvant à la racine du site Web. Cela peut aussi être dû à un problème de droit d'accès sur des fichiers et dossiers de ce dernier. 

Lorsque Chrome par exemple affiche une fausse erreur 500, vous devriez visualiser l'image suivante: 

 

Corriger un erreur 500 sur cPanel

 

Cependant en activant la fonction display_error de votre configuration PHP, vous devriez voir apparaître les erreurs PHP à la place de l'erreur 500.

 

Corriger un erreur 500 sur cPanel

 

Comment déterminer qu'il s'agit bien d'une erreur 500 ?

Afin de déterminer que vous avez bien une erreur 500 est de vérifier le log Apache et PHP de votre formule Web qui retrace toutes les erreurs concernant votre site. Si aucune erreur n'est visible sur le log de votre hébergement, cela signifie qu'il s'agit très certainement d'une fausse erreur PHP.

Dans le cas contraire, l'erreur sera affiché dans le log de votre hébergement. Cette erreur est souvent la cause d'un problème de droit sur les fichiers / dossiers de votre hébergement Web. Cela peut aussi être dû à un problème au niveau des directives de votre fichier .htaccess

 

Corriger un erreur 500 sur cPanel

 

Comment forcer l'affichage des erreurs 500 ? 

Si vous avez confirmation qu'aucune erreur est visible sur le log Apache et PHP de votre hébergement Web et afin de connaître la raison du problème, il sera nécessaire de forcer l'affichage des erreurs PHP sur votre site internet. Pour cela, vous avez la possibilité de modifier la configuration PHP de votre hébergement Web en suivant la procédure suivante: 

1. Connectez-vous à votre interface cPanel et cliquez sur "Editeur INI MultiPHP"

 

Corriger un erreur 500 sur cPanel

 

2. Sélectionnez le nom de domaine concerné

 

Corriger un erreur 500 sur cPanel

 

3. Modifiez la valeur "display_errors" se trouvant en haut de page pour l'activer

Cependant, si vous utilisez Wordpress, Prestashop ou Joomla, il est fort possible qu'aucun changement ne soit visible. Dans ce cas, il sera nécessaire d'activer l'affichage des erreurs dans les fichiers de configuration respectif. 

Comment activer le mode Debug de votre site ?

La plupart des CMS tel que Wordpress dispose sur le fichier de configuration d'un mode de debug désactivé par défaut.
Afin de pouvoir afficher les erreurs sur votre site Web, il est impératif d'activer ce mode.
Pour cela, vous pouvez vous connecter directement au "Gestionnaire de fichiers" accessible depuis votre interface cPanel et éditer le fichier de configuration associé permettant d'activer ce mode.

 

Comment activer le mode Debug sur Wordpress ?

Si votre site a été créé avec Wordpress, vous pouvez activer le mode debug depuis le fichier "wp-config.php" se trouvant à la racine de votre hébergement Web. Pour cela, il vous suffit de modifier la constante "WP_DEBUG" par la valeur "true" à la place de "false". 

Vous pouvez aussi, si vous le désirez, ajouter la constante WP_DEBUG_LOG afin d'enregistrer les erreurs dans le fichier "wp-content/debug.log".

Il est nécessaire aussi de vérifier que la constante "WP_DEBUG_DISPLAY" ne soit pas défini sur votre fichier de configuration. Dans le cas contraire, il sera aussi nécessaire de passer cette valeur à true. 

Le fichier de configuration devrait ressembler à ceci: 

 

Corriger un erreur 500 sur cPanel

 

Comment activer le mode Debug sur Prestashop ?

Sur Prestashop, vous pouvez activer le mode debug en vous rendant sur le fichier "define.inc.php" se trouvant dans le dossier "config". 

Il vous sera nécessaire de modifier la constate "_PS_MOD_DEV_" par "true" à la place de "false". Si besoin, vous pouvez aussi activer le mode "_PS_DEBUG_PROFILING_" qui vous permettra de disposer de plus d'informations.

Le fichier de configuration devrait ressembler à ceci: 

 

Corriger un erreur 500 sur cPanel

 

Comment activer le mode Debug sur Joomla ?

Pour Joomla, vous pouvez activer le mode debug en éditant le fichier configuration.php. En effet, dans ce fichier, il vous faut modifier la variable "$debug" par 1 pour l'activer. Il est nécessaire aussi de modifier la variable $error_reporting par "maximum" afin que toutes les erreurs s'affichent. 

Le fichier de configuration devrait ressembler à ceci:

 

Corriger un erreur 500 sur cPanel

 

Comment activer le mode debug sur d'autres CMS ?

Il est fort possible que vous utilisiez un autre CMS. Afin de connaître la manipulation pour activer le mode debug, vous pouvez aussi taper sur le moteur recherche le "nom du CMS + Debug". En effet, cela devrait vous conduire directement sur un tutoriel vous expliquant la manipulation à effectuer pour activer ce mode. 

Comprendre les différentes erreurs PHP

Il est relativement simple de comprendre l'origine d'une erreur 500. En effet, il s'agit très souvent des mêmes erreurs qui reviennent. 

1. La première erreur la plus courante est l'erreur "Parse error". En effet, celle-ci indique souvent un problème de syntaxe (une erreur au niveau de la programmation de votre code). L'erreur se défini comme suit:

  • Parse Error: défini qu'il s'agit d'une erreur de code
  • Un message en anglais est visible afin de fournir plus d'informations sur le type d'erreur
  • Le chemin vers le fichier sur lequel l'erreur se trouve avec la ligne concerné par l'erreur

Si nous prenons exemple sur le fichier index.php de notre site Wordpress sur lequel il manque un point-virgule à la fin de la ligne 17, le fichier Web sur lequel se trouve l'erreur est le suivant: 

 

Corriger un erreur 500 sur cPanel

 

L'erreur visible en vous rendant sur l'URL sera la suivante:

 

Corriger un erreur 500 sur cPanel

 

2. L'erreur "Parse error: syntax error, unexpected end of file" indique qu'il semble manquer quelque chose à la fin du fichier.

 

Corriger un erreur 500 sur cPanel

 

Dans ce code, il manque par exemple l'accolade fermant l'instruction if.

3. L'erreur Parse Error: syntax error, unexpected (T_STRING), expecting ','or';' est souvent dû à une erreur liée au guillement se trouvant dans votre code. 

 

Corriger un erreur 500 sur cPanel

 

En effet, sur ce code, il manque l'antislash sur le mot "d'erreur" comme dans le code suivant afin que cela fonctionne: 

 

Corriger un erreur 500 sur cPanel

 

4. Vous pouvez aussi visualiser une erreur du type "Fatal Error". Cette erreur est l'une des erreurs les plus graves que vous pouvez rencontrer. De plus, elle provoque l'arrêt de votre script. Elle est défini comme suit: 

  • Fatal Error: Ce message indique que l'erreur est fatale et bloquante pour le fonctionnement de votre script
  • Message: Un message suit le code "Fatal error" afin de vous expliquer la raison de l'erreur
  • Chemin d'accès: le chemin d'accès ainsi que la ligne posant problème sont indiqués

Cette erreur indique souvent qu'une fonction n'a pas été définie comme dans le code suivant: 

Corriger un erreur 500 sur cPanel

Vous allez de ce fait, voir l'erreur suivante: Fatal Error: Uncaught Error: Call to undefined function 

Cette erreur est souvent due à l'une des choses suivantes: 

  • Vous avez une faute de frappe dans la fonction que vous avez définie
  • Le fichier PHP contenant la fonction n'a pas été chargé sur votre script

 

5. Il est fort possible que vous ayez l'erreur "Fatal Error: cannot redeclare" indiquant que la fonction est défini une seconde fois. Le code pourrait ressembler à celui-ci: 

Corriger un erreur 500 sur cPanel

Il est tout à fait possible d'éviter cette erreur en:

  • changeant le nom de la fonction redéfinie
  • Il peut aussi s'agir d'un problème de namespace. Dans ce cas, il est nécessaire de vérifier le namespace et indiquer le chemin d'accès complet à la fonction

 

6. Vous pouvez avoir l'erreur "Fatal Error: allowed memory size exhausted".

Cela indique que le script PHP utilise trop de mémoire et dépasse la valeur maximum autorisé par votre hébergement Web. Il s'agit de la valeur "memory_limit". Cette valeur peut être modifiée par vos soins sur les formules cPanel. Si malgré l'augmentation de la valeur, le problème persiste, il s'agit très certaines d'un bug au niveau du codage de votre script. 

 

7. L'erreur "Fatal Error: Maximum execution time exceeded" signifie un dépassement du temps d'exécution de votre script. Vous pouvez modifier pour cela, la valeur "Max_execution_time". 

 

8. L'erreur "Fatal error: Uncaught Error: Call to undefined function mysql_connect()" signifie que le module "mysql" n'est pas chargé sur la version PHP utilisé par vos soins. L'erreur se présente lorsque:

  • La version PHP 7 ou supérieur est utilisé alors que votre site n'est pas compatible avec cette version
  • Vous utilisez une version PHP5 mais le module "Mysql" n'est pas présent

Vous pouvez modifier aisément la version PHP en vous rendant sur "Sélectionner une version PHP" se trouvant sur votre interface cPanel.

 

9. L'erreur "Permission denied" signifie que PHP ne dispose pas des droits pour accéder à un fichier ou dossier défini. L'erreur est souvent visible sous la forme suivante:

Warning file_put_contacts(/home/c123456/public_html/dossier/fichier.php): failed to open stream: Permission denied in /home/c123456/index.php on line 20

Dans ce cas, il est nécessaire de vérifier les chmod sur vos fichiers et dossiers. En principe les chmod sont les suivants: 

  • 644: Pour un fichier
  • 755: pour un dossier

 

10. L'erreur "No such file or directory" indique que PHP a besoin d'inclure un fichier qui ne semble pas présent sur votre espace FTP. L'erreur représente à la suivante: 

Warning: require_once(/home/c123456/public_html/dossier/fichier.php): failed to open stream: No such file or directory in /home/c123456/public_html/index.php on line 20

Il faut dans ce cas là: 

  • Vérifier que le fichier concerné existe bien sur votre espace FTP. Si ce n'est pas le cas, il sera nécessaire de ré-uploader le fichier
  • Vérifier que les droits sur le fichier sont bien les bons, il s'agit du CHMOD
  • Vérifier que le chemin indiqué au niveau de votre script PHP est bien le bon

 

11. Vous pouvez visualiser l'erreur "Warning:session_start(): Cannot send session cookie headers already sent" qui indique qu'un flux a déjà été généré et qu'il n'est de c fait plus possible d'utiliser la fonction "session_start". Cette erreur est visible sous la forme suivante: 

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/c123456/public_html/dossier/session.php:2 in /home/c123456/public_html/dossier/session.php on line 20

Les 3 causes pouvant provoquer cette erreur sont les suivantes: 

  • Une directive affichant du texte avant l'appel à la fonction
  • Un problème de caractères BOM_UTF8. Cette erreur se situe toujours sur la première ligne de votre code
  • Des warning ou des erreurs PHP

 

 

Pour aller plus loin

Conclusion

Vous êtes désormais en mesure de connaître la raison d'une Erreur 500 ou page blanche. Vous êtes aussi en mesure de dépanner votre site internet.

N'hésitez pas à poser vos questions et/ou remarques en commentaire. 

Notez cet article

2.5 / 5
2 avis


Vous avez noté 0 étoile(s)

Cet article vous a-t-il été utile ?

Merci !

N'hésitez pas à commenter nos pages afin de nous aider à les améliorer si besoin.

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.






Pour toutes questions non liées à cette documentation ou problèmes techniques sur l'un de vos services, cliquez ici si vous souhaitez contacter le support commercial ou le support technique