Per gli ambienti WordPress, di solito non c'è motivo di utilizzare ini_set
perché è quello che le costanti definite fornite da WordPress Core stanno già raggiungendo. Il modo in cui funziona PHP è che alcune impostazioni possono essere sovrascritte nel tuo CMS (WordPress), all'interno di singoli script e persino su base per utente o per directory (con grande frustrazione degli host e delle agenzie web).
Per disabilitare la visualizzazione degli errori sulla pagina in WordPress, l'unica impostazione di cui hai veramente bisogno è:
define('WP_DEBUG', false);
... perché quando WP_DEBUG
è disabilitato, le opzioni secondarie sono quindi inattive:
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
Tenere presente che l' WP_DEBUG_LOG
opzione confusa si riferisce solo alla creazione debug.log
all'interno della directory wp-content
e non influisce su altre impostazioni di registrazione, ecc.
Ancora una volta, le impostazioni in WordPress possono sovrascrivere le impostazioni PHP predefinite, quindi le tue impostazioni PHP non contano tanto quanto avere le impostazioni corrette nel tuo wp-config.php
file, che si carica prima di altri componenti WP.
Detto questo, è una buona idea implementare le impostazioni predefinite come di seguito in produzione:
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
Per un esempio completo, consultare il nostro file php.ini SlickStack ottimizzato per Nginx e PHP-FPM.
In un caso, dopo ore di ricerca, ci siamo resi conto che un plugin (o tema) stava scavalcando le varie impostazioni di gestione degli errori precedentemente impostate in php.ini
e wp-config.php
. L'unico modo per impedirlo è rimuovere il plug-in o il tema di WordPress che sta cercando di "hackerare" le impostazioni di PHP o dire loro di rimuoverlo perché è una pessima pratica per le estensioni ignorare le opzioni di debug del tuo CMS.
In SlickStack, abbiamo creato uno script Bash che "contrassegna" qualsiasi ini_set
e error_reporting
linea dai file PHP nelle directory /themes/
e /plugins/
evidenziando tali istanze utilizzando un plug-in MU (script PHP) che visualizza un elenco di tali "hack" nella dashboard di amministrazione di WP.