Quel est un moyen efficace de dépanner un «écran blanc de la mort»


18

Plusieurs fois, j'ai été dans une position où le front-end d'un site Web Joomla est un écran vierge sans contenu, parfois appelé "écran blanc de la mort".

Cela s'est produit après le déplacement d'un site Web et s'est également produit de manière inattendue sur un site Web fonctionnant précédemment.

En supposant qu'il puisse y avoir diverses causes différentes, quel est un moyen efficace de dépanner et de résoudre ce problème?

Réponses:


14
  1. Modifier le rapport d'erreurs au maximum

    • Connectez-vous à la zone d'administration
    • Allez dans Configuration globale -> serveur

    Vous devez d'abord définir le rapport d'erreurs sur Maximum

  2. Modifier des fichiers en FTP

    • Connectez-vous à vos fichiers de site Joomla via FTP.

    • Trouvez votre fichier index.php situé à la racine de votre site.

    • Ouvrez le fichier index.php et ajoutez ce code directement après la toute première ligne du fichier:

      ini_set('display_errors', TRUE); error_reporting(E_ALL); 
      
  3. Modifier le fichier PHP.ini

    Dans le fichier PHP.ini, vous devez modifier ces deux paramètres:

    • Réglez Erreur d'affichage sur Activé: display_errors = On

    • Définir le rapport d'erreur: error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

  4. Vérifiez le journal de votre serveur

    Enfin, vous obtenez un journal des erreurs avec le message d'erreur indiquant le chemin d'erreur et la raison de l'erreur

Référence: http://www.ostraining.com/blog/joomla/white-screen-of-death/


2
En plus de ce qui précède, je recommanderais d'installer et d'activer la console Firebug dans votre navigateur. Une fois terminé, revisitez l'écran blanc de la mort. Vous serez surpris de ce que vous trouverez parfois.
TryHarder

1
Autre chose, je trouve généralement que l'écran blanc de la mort a quelque chose à voir avec le fichier .htaccess.
TryHarder

1
En de rares occasions, cela peut être dû au fait que le fichier en cours de chargement utilise une defined('FOO') or die();ligne mais FOOn'est pas défini.
Andrew Eddie

10

Ces autres réponses vous mèneront probablement à la réponse, mais une chose que j'ai remarquée comme un problème mineur est que certains plugins configurent error_reporting par eux-mêmes et qui peuvent remplacer le rapport d'erreurs de Joomla, donc une autre façon de résoudre ce problème est de désactiver les extensions une à une temps avant le chargement du site, les plugins étant le principal délinquant.

Vérifiez manuellement les autres pages, cela se charge-t-il? S'il fait son module ou composant chargé uniquement sur la première page, vous aidant à l'isoler. La mise à jour de vos extensions est également une bonne idée, si cela fonctionnait avant, votre environnement était peut-être PHP 5.2 et lorsque vous êtes passé à 5.3 ou 5.4, il y avait une erreur majeure à travers les différences.

En règle générale, une mise à jour d'une extension peut résoudre ce problème, tant qu'elle est activement maintenue. Bien que dans certains cas, il puisse s'agir de votre modèle.


1
Je le fais également dans le sens inverse et désactivez toutes les extensions, puis allumez-les une par une jusqu'à ce que le site se casse. Même idée.
David Fritsch

1
Parfois, les désactiver tous en même temps peut entraîner une pause en soi. Pas toujours mais c'est arrivé une fois, donc une à la fois était notre solution.
Jordan Ramstad

6

Dans ces cas, activez simplement le rapport d'erreur Joomla au maximum, comme indiqué ci-dessous. entrez la description de l'image ici Une fois le rapport d'erreurs activé, essayez de recharger la page Web. Il va maintenant vous montrer quelques phrases d'erreur. En fait, vous venez de trouver les premières informations qui doivent être déboguées pour résoudre l'erreur entrez la description de l'image ici

Plus de conseils de débogage de base peuvent être trouvés dans ce blog: http://www.readybytes.net/blog/item/a-beginners-guide-to-start-debugging-joomla.html


2

Il semble que personne n'ait mentionné la désactivation de la mise en mémoire tampon de sortie - je vais donc le mentionner ici ...

La mise en mémoire tampon de sortie est très désagréable pour le débogage, et même si vous définissez votre rapport d'erreurs au maximum et ajoutez les php.inientrées, cela ne fonctionnera toujours pas (vous ne verrez toujours pas les erreurs). Cela peut être désactivé en ajoutant simplement output_buffering = offau .htaccessfichier comme mentionné ici (notez que cela peut ne pas fonctionner dans tous les environnements).

De plus, un autre problème provoquant une page vierge est que l'hôte lui-même a peut-être désactivé le signalement des erreurs de son côté - dans ce cas, l'hôte doit être contacté car de nombreux hôtes n'autorisent pas les remplacements de leurs propres paramètres.


1

Si vous avez activé les URL SEF et que vous utilisez le fichier .htaccess de Joomla!, Assurez-vous que mod_rewrite est activé sur le serveur.

Dans de nombreux cas, le fichier .htaccess est le coupable, donc en supposant que mod_rewrite est activé, je recommanderais de sauvegarder le fichier .htaccess puis de supprimer l'original (ou de le renommer), pour voir si cela fait une différence.

Je recommanderais également d'installer et d'exécuter la console Firebug dans votre navigateur. Il révèle souvent des indices que vous pouvez utiliser pour rechercher le problème (cela est vrai pour de nombreux problèmes différents).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.