Déboguer une page blanche ou une erreur 500

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: 

 

Déboguer une page blanche ou une erreur 500

 

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.

 

Déboguer une page blanche ou une erreur 500

 

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

 

Déboguer une page blanche ou une erreur 500

 

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 "Sélectionner une version de PHP"

 

Déboguer une page blanche ou une erreur 500

 

2. Sélectionnez  l'onglet "Options"

 

Déboguer une page blanche ou une erreur 500

 

3. Cochez la case "display_errors"  :

 

Déboguer une page blanche ou une erreur 500

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 espace client LWS. 

 

Déboguer une page blanche ou une erreur 500

 

Cliquez sur le fichier que vous désirez modifier afin de l'ouvrir. 

 

Déboguer une page blanche ou une erreur 500

 

Comment activer le mode Debug sur Wordpress ?

 

Pour activer  le mode Debug dans Wordpress, consultez la procédure suivante.

Comment activer le mode Debug sur Prestashop ?

 

Pour activer  le mode Debug dans PrestaShop , consultez la procédure suivante.

Comment activer le mode Debug sur Joomla ?

 

Pour activer  le mode Debug dans Joomla, consultez la procédure suivante.

 

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: 

 

Déboguer une page blanche ou une erreur 500

 

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

 

Déboguer une page blanche ou une erreur 500

 

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

 

Déboguer une page blanche ou une erreur 500

 

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. 

 

Déboguer une page blanche ou une erreur 500

 

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

 

Déboguer une page blanche ou une erreur 500

 

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: 

Déboguer une page blanche ou une erreur 500

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: 

Déboguer une page blanche ou une erreur 500

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


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 n'avez pas trouvé votre réponse ?

Nous vous invitons à nous contacter pour exposer votre problème :
Service technique
Service commercial

Si toutefois votre demande concerne un manque ou une erreur dans l'aide que vous venez de visualiser, n'hésitez pas à nous laisser un message vie le formulaire ici présent.