Para ambientes WordPress, geralmente não há razão para usar, ini_set
porque é isso que as constantes definidas fornecidas pelo WordPress Core já estão alcançando. A maneira como o PHP funciona é que determinadas configurações podem ser substituídas no seu CMS (WordPress), em scripts individuais e até mesmo por usuário ou por diretório (para grande frustração dos hosts e agências da web).
Para desativar a exibição de erros na página no WordPress, a única configuração que você realmente precisa é:
define('WP_DEBUG', false);
... porque quando WP_DEBUG
está desativado, as subopções ficam inativas:
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
Lembre-se de que a WP_DEBUG_LOG
opção confusa refere-se apenas à criação de debug.log
dentro do diretório wp-content
e não afeta outras configurações de log etc.
Novamente, as configurações do WordPress podem substituir as configurações padrão do PHP, portanto, as configurações do PHP não importam tanto quanto ter as configurações corretas no wp-config.php
arquivo, que são carregadas antes de outros componentes do WP.
Dito isto, é uma boa ideia implementar as configurações padrão, como abaixo na produção:
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
Para um exemplo completo, consulte o nosso arquivo slickStack php.ini otimizado para Nginx e PHP-FPM.
Em um caso, após horas de pesquisa, percebemos que um plugin (ou tema) estava substituindo as várias configurações de tratamento de erros definidas anteriormente em php.ini
e wp-config.php
. A única maneira de evitar isso é remover o plug-in ou tema do WordPress que está tentando "hackear" suas configurações de PHP ou pedir para removê-lo, porque isso é uma prática muito ruim para as extensões substituírem as opções de depuração do seu CMS.
No SlickStack, criamos um script Bash que "sinaliza" qualquer ini_set
e error_reporting
linhas de arquivos PHP nos diretórios /themes/
e /plugins/
, destacando essas instâncias usando um MU Plugin (script PHP) que exibe uma lista desses "hacks" no WP Admin Dashboard.