Pour les environnements WordPress, il n'y a généralement aucune raison d'utiliser ini_set
car c'est ce que les constantes définies fournies par WordPress Core réalisent déjà. La façon dont PHP fonctionne est que certains paramètres peuvent être remplacés dans votre CMS (WordPress), dans des scripts individuels, et même par utilisateur ou par répertoire (à la grande frustration des hébergeurs et des agences Web).
Pour désactiver les erreurs d'affichage sur la page dans WordPress, le seul paramètre dont vous avez vraiment besoin est:
define('WP_DEBUG', false);
... car quand WP_DEBUG
est désactivé, les sous-options sont alors inactives:
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
Gardez à l'esprit que l' WP_DEBUG_LOG
option déroutante se réfère uniquement à la création de debug.log
dans le répertoire wp-content
et n'affecte pas les autres paramètres de journalisation, etc.
Encore une fois, les paramètres de WordPress peuvent remplacer les paramètres PHP par défaut, donc vos paramètres PHP n'ont pas autant d'importance que d'avoir des paramètres corrects dans votre wp-config.php
fichier, qui se charge avant les autres composants WP.
Cela dit, c'est une bonne idée d'implémenter les paramètres par défaut comme ci-dessous en production:
error_reporting = E_ERROR | E_WARNING | E_PARSE
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/www/logs/error.log
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = Off
report_memleaks = On
xmlrpc_errors = 0
html_errors = Off
Pour un exemple complet, reportez-vous à notre fichier SlickStack php.ini optimisé pour Nginx et PHP-FPM.
Dans un cas, après des heures de recherche, nous avons réalisé qu'un plugin (ou thème) remplaçait les différents paramètres de gestion des erreurs précédemment définis dans php.ini
et wp-config.php
. La seule façon d'empêcher cela est de supprimer le plugin ou le thème WordPress qui essaie de "pirater" vos paramètres PHP, ou de leur dire de le supprimer parce que c'est une très mauvaise pratique pour les extensions de remplacer les options de débogage de votre CMS.
Dans SlickStack, nous avons créé un script Bash qui "marque" les lignes ini_set
et les error_reporting
fichiers PHP dans les répertoires /themes/
et /plugins/
en mettant en évidence de telles instances à l'aide d'un plug- in MU (script PHP) qui affiche une liste de ces "hacks" dans le tableau de bord d'administration WP.