Page blanche après un enregistrement sur WordPress 5

La fameuse terreur de la page blanche de WordPress

Il n’est pas rare sur WordPress de tomber sur une page blanche lorsque l’on créé ou modifie une page ou un article. Face à cette situation, que faire ? What iz SEO vous propose une solution ciblée en 3 étapes :

Etape 1 – On demande à WordPress de nous indiquer d’ou vient l’erreur

Bon, en réalité c’est plutôt PHP qui va nous le dire, mais il ne suffira pas d’ajouter les lignes suivantes dans le code :

ini_set(‘display_errors’, 1);

error_reporting(E_ALL);

Si sur du simple code PHP cela peut fonctionner, WordPress lui ne le laisse pas passer ! Il va donc falloir donner une autre instruction à notre petit CMS, pour ce faire, RDV dans le code du fichier wp_config.php qui se trouve à la racine de WordPress et modifiez la ligne suivante :

define('WP_DEBUG', false);

Remplacez false par true et en enregistrez la modification. Voilà pour la première étape.

Etape 2 – Traquer l’erreur

Dans 99% des cas, le problème de la page blanche est lié à une extension, et dans 100% des cas pour ma part, il s’agit de l’extension simple google sitemap xml, mais ne nous avançons pas trop.

Si vous avez toujours la page blanche ouverte, un petit F5 sera le bienvenue, si ce n’est pas le cas, je vous invite à vous rendre dans votre interface d’administration, soit dans la gestion des pages, soit dans la gestion des articles, choisissez-en un(e) que vous ouvrez et cliquez simplement sur « Modifier ».

Oubliez les éventuelles Notices et cherchez plutôt le(s) Warning. Vous devriez avoir un message de ce type :

Warning: fopen(le_repertoire/le_fichier_qui_merde): failed to open stream: Permission denied in encore_le_repertoire/encore_le_fichier_qui_merde (Dans mon cas simple-google-sitemap-xml.php) on line numéro_de_la_ligne_qui_merde

Là clairement, on sait qu’il s’agit d’un problème de permission (Permission denied) au niveau du dossier de l’extension précédemment citée. On se contrefout donc du numéro de ligne, il suffira de donner les droits au dossier de l’extension pour régler le problème. Fin de l’étape 2 !

Ré-ouverture de l’étape 2 : Il se peut également, mais c’est extrêmement plus rare, que l’origine de l’erreur ne soit pas une permission mais provienne du code. A ce moment là, le numéro de la ligne et le nom du fichier seront utiles pour corriger l’erreur.

Etape 3 – On corrige

Bien sûr, un chmod 777 récursif sur le dossier qui pose problème pourrait corriger l’erreur, mais il rendrait également vulnérable le dossier et les fichiers qu’il contient. Je vous propose donc une solution un poil moins bourrin, on va donner la gestion du dossier à l’utilisateur qui en a la charge. Cela implique que vous ayez la main sur le serveur, donc que vous soyez sur un dédié 🙂

Lorsque vous avez configuré votre serveur pour votre site, vous avez du créer un utilisateur (par défaut c’est www-data). Si c’est le cas, il vous suffit de taper la commande suivante en vous plaçant dans le dossier parent du fichier qui pose problème (celui qui contient le dossier qui contient le site, j’espère que vous me suivez) :

chown -R www-data www/

Si vous n’êtes pas connecté avec le super-utilisateur root, il faudra démarrer la commande avec sudo, comme ceci :

sudo chown -R www-data www/

Bien entendu, c’est plus « propre » de ne modifier que le fichier qui pose problème et pas le dossier parent et tous les fichiers qu’il contient, dans ce cas, l’attribut -R n’a pas lieu d’être.

Un peu d’explications sur cette commande

Chown : C’est la commande qui indique qui est propriétaire de quel dossier(s)/fichier(s).

-R : C’est un attribut de la commande Chown qui permet de donner la récursivité, c’est à dire que tous les dossiers, sous-dossiers et fichiers se trouvant dans le dossier ciblé seront affectés par cette commande. Inutile si vous ne ciblez qu’un fichier.

www-data : C’est le nom de l’utilisateur, vous remplacez par le votre bien entendu.

www/ : C’est le nom du dossier, si chez vous c’est public_html/ (ou autre chose) vous remplacez par le bon nom de dossier, cela va de soit !

Pourquoi un chown plutôt chmod 777 ?

Comme je l’ai dit précédemment, le chmod 777 donne les droits en lecture, écriture et exécution pour tous, ce qui est très dangereux car cela ouvre la porte aux personnes malintentionnées. De plus, sur le plan « administration du serveur », ce n’est vraiment pas propre de définir tous les droits à tout le monde sur un fichier ou un groupe de fichiers, il est plus cohérent de donner les droits uniquement à l’utilisateur qui en a le besoin.

Et si c’est pas un problème de droit ?

Eh bien.. Normalement vous avez récupéré le nom du fichier et le numéro de la ligne ou ça coince, donc il ne vous reste plus qu’à vous y rendre pour corriger. Mon conseil : Désactivez temporairement le module sur la version de prod du site (la version en ligne) et effectuez les corrections sur un serveur de recette, ça évitera à vos internautes de lire des notices et des warning.

Lorsque vous avez fini, n’oubliez pas de remettre l’affichage des erreurs (du fichier wp_config.php) à false :

define('WP_DEBUG', false);

Surtout si vous êtes du style à travailler directement en production (comme c’est le cas de beaucoup de personnes de nos jours, malheureusement).

Ah dernière chose, si vous ne savez pas faire, venez poser la question ici 🙂

A propos de Tony (29 Posts)

Développeur Web et consultant SEO, je vous invite à venir échanger et partager sur ce vaste sujet. Je vous propose également mes services en référencement naturel, afin d'améliorer la visibilité de votre site Internet.


5 thoughts on “Page blanche après un enregistrement sur WordPress

  1. Reply fabien Jan 4,2014 15 h 49 min

    J’ai déjà eu le problème c’est vraiment flippant heureusement j’ai trouvé rapidement le problème merci en tout cas pour l’article.

    A+
    Fabien

  2. Reply David Le Puil Jan 22,2015 2 h 02 min

    Bonjour
    Où doit-on mettre les lignes :

    ini_set(‘display_errors’, 1);

    error_reporting(E_ALL);

    ??

    Merci 🙂

    • Reply Tony Avr 15,2016 11 h 33 min

      Salut David,

      Réponse un peu tardive suite à une retraite annuelle au soleil 🙂

      Il ne faut pas ajouter ce code, il faut juste ajouter le define(‘WP_DEBUG’, true) dans le fichier wp-config.php.
      Si tu bosses directement sur du code PHP maison, tu peux ajouter le debug classique sous le

  3. Reply galloualexa Oct 17,2016 9 h 54 min

    J’aime bien cet article merci

  4. Reply maram Nov 18,2016 9 h 49 min

    Un très bon article,
    merci pour l’effort et le partage.

Leave a Reply