{"id":16924,"date":"2026-07-21T09:13:10","date_gmt":"2026-07-21T12:13:10","guid":{"rendered":"https:\/\/www.homehost.com.br\/blog\/?p=16924"},"modified":"2026-07-21T09:13:19","modified_gmt":"2026-07-21T12:13:19","slug":"display-errors-php","status":"publish","type":"post","link":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/","title":{"rendered":"Display errors PHP: como exibir todos os erros do PHP"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Quando um script PHP falha e a p\u00e1gina aparece totalmente em branco, quase sempre o motivo \u00e9 que a exibi\u00e7\u00e3o de erros est\u00e1 desligada \u2014 o PHP encontrou o erro, mas foi configurado para n\u00e3o mostr\u00e1-lo. Para revelar a mensagem, \u00e9 preciso ativar o <code>display_errors<\/code>.<\/strong> \u00c9 a primeira coisa a fazer para depurar qualquer problema de PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por padr\u00e3o, muitos servidores v\u00eam com a exibi\u00e7\u00e3o de erros desativada (o que \u00e9 correto para um site no ar). Mas, ao desenvolver ou diagnosticar um problema, voc\u00ea precisa ver as mensagens. Este guia mostra como ativar a exibi\u00e7\u00e3o de todos os erros do PHP pelos tr\u00eas caminhos poss\u00edveis \u2014 direto no c\u00f3digo, no php.ini e no .htaccess \u2014, como usar o <code>error_reporting<\/code> para escolher o que aparece, e por que \u00e9 essencial desligar tudo isso quando o site voltar ao ar.<\/p>\n\n\n\n<div style=\"border:1px solid #d6e4fb; border-left:4px solid #1a73e8; background:#f4f8fe; border-radius:8px; padding:18px 22px; margin:24px 0; font-family:Arial, Helvetica, sans-serif;\">\n  <div style=\"font-weight:700; color:#0b3d91; margin-bottom:6px; text-transform:uppercase; letter-spacing:.05em; font-size:14px;\">Resposta r\u00e1pida<\/div>\n  <p style=\"color:#0b3d91; line-height:1.65; margin:0;\">Para exibir todos os erros do PHP, adicione ao in\u00edcio do seu script:<\/p>\n  <div style=\"background:#0b3d91; border-radius:6px; padding:12px 14px; margin:12px 0 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n    <code style=\"color:#f1f5f9; font-size:13px; line-height:1.7; white-space:pre;\">ini_set('display_errors', 1);\nini_set('display_startup_errors', 1);\nerror_reporting(E_ALL);<\/code>\n  <\/div>\n  <p style=\"color:#0b3d91; line-height:1.65; margin:12px 0 0;\">O <code>display_errors<\/code> liga a exibi\u00e7\u00e3o na tela; o <code>error_reporting(E_ALL)<\/code> define que <strong>todos<\/strong> os tipos de erro apare\u00e7am. Isso vale para uma tela em branco causada por erro de PHP. <strong>Importante:<\/strong> desligue a exibi\u00e7\u00e3o quando o site estiver em produ\u00e7\u00e3o.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Por que o PHP n\u00e3o mostra os erros<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quando uma p\u00e1gina PHP d\u00e1 erro e aparece <strong>totalmente em branco<\/strong> (a famosa &#8220;tela branca da morte&#8221;), o que aconteceu foi o seguinte: o PHP executou o script, encontrou um erro fatal, interrompeu tudo \u2014 e, como estava configurado para <strong>n\u00e3o exibir erros<\/strong>, n\u00e3o mostrou nenhuma mensagem. O resultado \u00e9 uma p\u00e1gina vazia, sem pista nenhuma.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso \u00e9 controlado por duas diretivas do <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-ini\/\">php.ini<\/a> que trabalham juntas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>display_errors<\/code><\/strong> \u2014 decide <strong>se<\/strong> os erros aparecem na tela (On) ou n\u00e3o (Off).<\/li>\n\n\n\n<li><strong><code>error_reporting<\/code><\/strong> \u2014 decide <strong>quais<\/strong> tipos de erro s\u00e3o considerados (erros fatais, avisos, notices, etc.).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Em um servidor de produ\u00e7\u00e3o, o <code>display_errors<\/code> normalmente vem <strong>desligado<\/strong> de prop\u00f3sito, por seguran\u00e7a. Para desenvolver ou diagnosticar, voc\u00ea precisa lig\u00e1-lo temporariamente. H\u00e1 tr\u00eas formas de fazer isso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Caminho 1: direto no c\u00f3digo PHP (ini_set)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A forma mais r\u00e1pida e localizada, ideal para depurar um script espec\u00edfico, \u00e9 adicionar estas linhas <strong>no in\u00edcio<\/strong> do arquivo PHP:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">&lt;?php\nini_set('display_errors', 1);\nini_set('display_startup_errors', 1);\nerror_reporting(E_ALL);\n\n\/\/ resto do seu c\u00f3digo\n<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">O que cada linha faz:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>ini_set('display_errors', 1)<\/code><\/strong> \u2014 liga a exibi\u00e7\u00e3o de erros na tela para este script.<\/li>\n\n\n\n<li><strong><code>ini_set('display_startup_errors', 1)<\/code><\/strong> \u2014 mostra tamb\u00e9m os erros que ocorrem na inicializa\u00e7\u00e3o do pr\u00f3prio PHP (que o <code>display_errors<\/code> sozinho n\u00e3o pega).<\/li>\n\n\n\n<li><strong><code>error_reporting(E_ALL)<\/code><\/strong> \u2014 pede que <strong>todos<\/strong> os n\u00edveis de erro sejam reportados: fatais, avisos (warnings), notices e o resto.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e1 uma limita\u00e7\u00e3o importante: se o erro for <strong>de sintaxe no pr\u00f3prio arquivo<\/strong> onde voc\u00ea colocou essas linhas, elas n\u00e3o chegam a rodar \u2014 o PHP falha antes de execut\u00e1-las. Nesse caso, use um dos outros dois caminhos, ou coloque o c\u00f3digo de teste num arquivo separado que inclua o problem\u00e1tico.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Caminho 2: no php.ini<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para ligar a exibi\u00e7\u00e3o de erros <strong>para todo o site<\/strong> (\u00fatil em um ambiente de desenvolvimento inteiro), ajuste as diretivas no <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-ini\/\">php.ini<\/a>:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">display_errors = On\ndisplay_startup_errors = On\nerror_reporting = E_ALL<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Lembre-se de que, ao editar o php.ini diretamente, a mudan\u00e7a <strong>s\u00f3 vale depois de reiniciar<\/strong> o servidor web (Apache) ou o PHP-FPM. Em hospedagem compartilhada, voc\u00ea faz esse ajuste pelo painel \u2014 no cPanel, em <em>Select PHP Version \u2192 Options<\/em>, localizando <code>display_errors<\/code> e <code>error_reporting<\/code>. O guia do <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-ini\/\">php.ini<\/a> detalha cada forma de editar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Caminho 3: no .htaccess<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea usa servidor Apache e n\u00e3o tem acesso ao php.ini, pode ligar a exibi\u00e7\u00e3o pelo <a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/htaccess-aprenda-tudo-sobre-esse-arquivo\/\">.htaccess<\/a>, na raiz do site:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">php_flag display_errors on\nphp_flag display_startup_errors on\nphp_value error_reporting E_ALL<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Esse caminho \u00e9 pr\u00e1tico porque vale para todo o site sem precisar reiniciar nada, mas depende de o servidor ser Apache e de permitir diretivas <code>php_value<\/code>\/<code>php_flag<\/code> no .htaccess (o que n\u00e3o acontece em setups com PHP-FPM). Se as linhas gerarem um erro 500, \u00e9 sinal de que o servidor n\u00e3o aceita esse m\u00e9todo \u2014 use ent\u00e3o o php.ini ou o painel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Entendendo o error_reporting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O <code>error_reporting<\/code> \u00e9 o que define <strong>quais<\/strong> erros voc\u00ea quer ver. O valor mais usado para depurar \u00e9 o <code>E_ALL<\/code>, que mostra tudo, mas h\u00e1 outros n\u00edveis \u00fateis:<\/p>\n\n\n\n<div style=\"overflow-x:auto; margin:24px 0;\">\n<table style=\"width:100%; border-collapse:collapse; font-family:Arial, Helvetica, sans-serif; font-size:14.5px; min-width:520px;\">\n  <thead>\n    <tr style=\"background-color:#1a73e8; color:#ffffff; text-align:left;\">\n      <th style=\"padding:12px 14px; border:1px solid #1a73e8;\">Valor<\/th>\n      <th style=\"padding:12px 14px; border:1px solid #1a73e8;\">O que mostra<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr style=\"background-color:#f5f7fa;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>E_ALL<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\">Todos os erros, avisos e notices (o mais completo)<\/td>\n    <\/tr>\n    <tr style=\"background-color:#ffffff;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>E_ERROR<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\">S\u00f3 os erros fatais, que interrompem a execu\u00e7\u00e3o<\/td>\n    <\/tr>\n    <tr style=\"background-color:#f5f7fa;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>E_ALL &amp; ~E_NOTICE<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\">Tudo, menos os notices (avisos menores)<\/td>\n    <\/tr>\n    <tr style=\"background-color:#ffffff;\">\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\"><code>E_ALL &amp; ~E_DEPRECATED<\/code><\/td>\n      <td style=\"padding:11px 14px; border:1px solid #e3e8ee;\">Tudo, menos avisos de recursos obsoletos<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Para depurar, <code>E_ALL<\/code> \u00e9 o recomendado \u2014 voc\u00ea quer ver tudo, inclusive os notices, que muitas vezes apontam a origem de um bug (como uma vari\u00e1vel n\u00e3o definida). O <code>display_errors<\/code> liga a exibi\u00e7\u00e3o; o <code>error_reporting<\/code> filtra o que \u00e9 exibido. Os dois precisam estar configurados para voc\u00ea ver o erro.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ver erros sem exibi-los na tela: o log<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nem sempre voc\u00ea quer os erros aparecendo na tela \u2014 especialmente num site que tem visitantes. A alternativa \u00e9 <strong>registrar os erros em um arquivo de log<\/strong>, em vez de exibi-los:<\/p>\n\n\n\n<div style=\"background:#0b3d91; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n  <code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre;\">display_errors = Off\nlog_errors = On\nerror_log = \/caminho\/para\/error.log<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Assim, os erros n\u00e3o aparecem para os visitantes, mas ficam gravados num arquivo que s\u00f3 voc\u00ea acessa. \u00c9 o m\u00e9todo ideal para <strong>produ\u00e7\u00e3o<\/strong>: voc\u00ea continua sabendo o que deu errado (consultando o log), sem expor nada ao p\u00fablico. Muitos pain\u00e9is de hospedagem j\u00e1 mant\u00eam um arquivo de log de erros do PHP que voc\u00ea pode consultar sem configurar nada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Por que desligar em produ\u00e7\u00e3o<\/h2>\n\n\n\n<div style=\"border:1px solid #f0d9a8; border-left:4px solid #e0a800; background:#fffaf0; border-radius:8px; padding:18px 22px; margin:24px 0; font-family:Arial, Helvetica, sans-serif;\">\n  <div style=\"font-weight:700; color:#8a6d00; margin-bottom:6px; text-transform:uppercase; letter-spacing:.05em; font-size:14px;\">&#x26a0;&#xfe0f; Nunca deixe display_errors ligado num site no ar<\/div>\n  <p style=\"color:#8a6d00; line-height:1.65; margin:0;\">As mensagens de erro do PHP exp\u00f5em informa\u00e7\u00f5es valiosas para um atacante: caminhos de arquivos no servidor, nomes de banco de dados, trechos de c\u00f3digo, vers\u00f5es de software. Deixar o <code>display_errors<\/code> ligado em produ\u00e7\u00e3o \u00e9 entregar um mapa da sua infraestrutura a qualquer visitante. Em um site no ar, mantenha <code>display_errors = Off<\/code> e use o <strong>log de erros<\/strong> para acompanhar os problemas com seguran\u00e7a.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">A regra de ouro: <strong><code>display_errors<\/code> ligado no desenvolvimento, desligado na produ\u00e7\u00e3o<\/strong>. Ao terminar de depurar um problema num site que est\u00e1 no ar, lembre-se de remover as linhas de <code>ini_set<\/code> que voc\u00ea adicionou, ou de desligar a diretiva no painel. Deix\u00e1-la ligada \u00e9 um dos deslizes de seguran\u00e7a mais comuns em PHP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Erros ainda n\u00e3o aparecem? Verifique<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea ativou tudo e a p\u00e1gina continua em branco, alguns pontos a checar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Erro de sintaxe no arquivo:<\/strong> se o pr\u00f3prio arquivo tem um erro de sintaxe, o <code>ini_set<\/code> dentro dele n\u00e3o roda. Ative pelo php.ini ou .htaccess, ou verifique o log de erros.<\/li>\n\n\n\n<li><strong>A configura\u00e7\u00e3o n\u00e3o foi aplicada:<\/strong> se editou o php.ini, confirme que reiniciou o servi\u00e7o e que editou o arquivo certo (veja como no guia do <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-ini\/\">php.ini<\/a>).<\/li>\n\n\n\n<li><strong>O erro est\u00e1 sendo logado, n\u00e3o exibido:<\/strong> consulte o arquivo de log de erros do PHP (o painel da hospedagem costuma ter um &#8220;Error Log&#8221;).<\/li>\n\n\n\n<li><strong>Cache de p\u00e1gina:<\/strong> se o site usa cache, limpe-o para garantir que est\u00e1 vendo a execu\u00e7\u00e3o real do PHP.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Perguntas frequentes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como exibir todos os erros no PHP?<\/strong><br>Adicione ao in\u00edcio do seu script as linhas <code>ini_set('display_errors', 1);<\/code>, <code>ini_set('display_startup_errors', 1);<\/code> e <code>error_reporting(E_ALL);<\/code>. A primeira liga a exibi\u00e7\u00e3o na tela, a segunda inclui erros de inicializa\u00e7\u00e3o e a terceira faz com que todos os tipos de erro sejam reportados. Para todo o site, ajuste as mesmas diretivas no php.ini ou no .htaccess.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Por que meu PHP n\u00e3o mostra erros e a tela fica em branco?<\/strong><br>Porque a diretiva display_errors est\u00e1 desligada. Quando o PHP encontra um erro fatal e a exibi\u00e7\u00e3o est\u00e1 desativada, ele interrompe o script e devolve uma p\u00e1gina vazia, sem mensagem. Ativando o display_errors e o error_reporting(E_ALL), a mensagem de erro passa a aparecer, revelando a causa do problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Qual a diferen\u00e7a entre display_errors e error_reporting?<\/strong><br>S\u00e3o complementares. O display_errors decide se os erros aparecem na tela ou n\u00e3o (On\/Off). O error_reporting decide quais tipos de erro s\u00e3o considerados (fatais, avisos, notices). Para ver um erro, os dois precisam estar configurados: a exibi\u00e7\u00e3o ligada e o n\u00edvel incluindo aquele tipo de erro. O valor error_reporting(E_ALL) mostra todos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como exibir erros do PHP sem acesso ao php.ini?<\/strong><br>Voc\u00ea tem dois caminhos. No pr\u00f3prio c\u00f3digo, adicione <code>ini_set('display_errors', 1)<\/code> e <code>error_reporting(E_ALL)<\/code> no in\u00edcio do script. No Apache, pode usar o arquivo .htaccess com <code>php_flag display_errors on<\/code> e <code>php_value error_reporting E_ALL<\/code>. Em hospedagem compartilhada, tamb\u00e9m d\u00e1 para ajustar pelo painel, no cPanel em Select PHP Version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00c9 seguro deixar a exibi\u00e7\u00e3o de erros ligada?<\/strong><br>N\u00e3o em produ\u00e7\u00e3o. As mensagens de erro exp\u00f5em caminhos de arquivos, nomes de banco de dados e outros detalhes que ajudam um atacante. Em um site no ar, mantenha display_errors = Off e registre os erros num log (log_errors = On) para acompanh\u00e1-los com seguran\u00e7a. A exibi\u00e7\u00e3o na tela deve ficar ligada apenas em ambiente de desenvolvimento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Onde ficam os logs de erro do PHP?<\/strong><br>O local \u00e9 definido pela diretiva error_log no php.ini. Em muitas hospedagens, h\u00e1 um arquivo de log de erros acess\u00edvel pelo painel de controle (procure por &#8220;Error Log&#8221; no cPanel). Se voc\u00ea define o error_log manualmente, aponte para um caminho onde o PHP tenha permiss\u00e3o de escrita, e consulte esse arquivo para ver os erros registrados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O que significa error_reporting(E_ALL)?<\/strong><br>\u00c9 o comando que diz ao PHP para reportar todos os n\u00edveis de erro: erros fatais, avisos (warnings), notices, avisos de c\u00f3digo obsoleto (deprecated) e o resto. \u00c9 o valor recomendado durante o desenvolvimento, porque mostra o quadro completo \u2014 inclusive os notices, que costumam apontar a origem de bugs sutis, como o uso de uma vari\u00e1vel n\u00e3o definida.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\"@type\":\"Question\",\"name\":\"Como exibir todos os erros no PHP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Adicione ao in\u00edcio do seu script as linhas ini_set('display_errors', 1); ini_set('display_startup_errors', 1); e error_reporting(E_ALL);. A primeira liga a exibi\u00e7\u00e3o na tela, a segunda inclui erros de inicializa\u00e7\u00e3o e a terceira faz com que todos os tipos de erro sejam reportados. Para todo o site, ajuste as mesmas diretivas no php.ini ou no .htaccess.\"}},\n    {\"@type\":\"Question\",\"name\":\"Por que meu PHP n\u00e3o mostra erros e a tela fica em branco?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Porque a diretiva display_errors est\u00e1 desligada. Quando o PHP encontra um erro fatal e a exibi\u00e7\u00e3o est\u00e1 desativada, ele interrompe o script e devolve uma p\u00e1gina vazia, sem mensagem. Ativando o display_errors e o error_reporting(E_ALL), a mensagem de erro passa a aparecer, revelando a causa do problema.\"}},\n    {\"@type\":\"Question\",\"name\":\"Qual a diferen\u00e7a entre display_errors e error_reporting?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"S\u00e3o complementares. O display_errors decide se os erros aparecem na tela ou n\u00e3o (On\/Off). O error_reporting decide quais tipos de erro s\u00e3o considerados (fatais, avisos, notices). Para ver um erro, os dois precisam estar configurados: a exibi\u00e7\u00e3o ligada e o n\u00edvel incluindo aquele tipo de erro. O valor error_reporting(E_ALL) mostra todos.\"}},\n    {\"@type\":\"Question\",\"name\":\"Como exibir erros do PHP sem acesso ao php.ini?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Voc\u00ea tem dois caminhos. No pr\u00f3prio c\u00f3digo, adicione ini_set('display_errors', 1) e error_reporting(E_ALL) no in\u00edcio do script. No Apache, pode usar o arquivo .htaccess com php_flag display_errors on e php_value error_reporting E_ALL. Em hospedagem compartilhada, tamb\u00e9m d\u00e1 para ajustar pelo painel, no cPanel em Select PHP Version.\"}},\n    {\"@type\":\"Question\",\"name\":\"\u00c9 seguro deixar a exibi\u00e7\u00e3o de erros ligada?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"N\u00e3o em produ\u00e7\u00e3o. As mensagens de erro exp\u00f5em caminhos de arquivos, nomes de banco de dados e outros detalhes que ajudam um atacante. Em um site no ar, mantenha display_errors = Off e registre os erros num log (log_errors = On) para acompanh\u00e1-los com seguran\u00e7a. A exibi\u00e7\u00e3o na tela deve ficar ligada apenas em ambiente de desenvolvimento.\"}},\n    {\"@type\":\"Question\",\"name\":\"Onde ficam os logs de erro do PHP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"O local \u00e9 definido pela diretiva error_log no php.ini. Em muitas hospedagens, h\u00e1 um arquivo de log de erros acess\u00edvel pelo painel de controle (procure por Error Log no cPanel). Se voc\u00ea define o error_log manualmente, aponte para um caminho onde o PHP tenha permiss\u00e3o de escrita, e consulte esse arquivo para ver os erros registrados.\"}},\n    {\"@type\":\"Question\",\"name\":\"O que significa error_reporting(E_ALL)?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u00c9 o comando que diz ao PHP para reportar todos os n\u00edveis de erro: erros fatais, avisos, notices, avisos de c\u00f3digo obsoleto (deprecated) e o resto. \u00c9 o valor recomendado durante o desenvolvimento, porque mostra o quadro completo, inclusive os notices, que costumam apontar a origem de bugs sutis, como o uso de uma vari\u00e1vel n\u00e3o definida.\"}}\n  ]\n}\n<\/script>\n\n\n\n<div style=\"max-width:760px; margin:32px auto; background:linear-gradient(135deg,#1a73e8 0%,#0b3d91 100%); border-radius:16px; padding:32px 28px; font-family:Arial, Helvetica, sans-serif; color:#fff; box-shadow:0 10px 30px rgba(26,115,232,.25);\">\n  <div style=\"display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap;\">\n    <div style=\"flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:12px; background:rgba(255,255,255,.18);\">\n      <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"16 18 22 12 16 6\"><\/polyline><polyline points=\"8 6 2 12 8 18\"><\/polyline><\/svg>\n    <\/div>\n    <div style=\"flex:1 1 320px; min-width:260px;\">\n      <div style=\"font-weight:800; line-height:1.25; margin-bottom:8px; font-size:19px;\">Ambiente PHP pronto para desenvolver<\/div>\n      <p style=\"margin:0 0 18px; line-height:1.6; color:#dbe8fb;\">Na hospedagem da Homehost voc\u00ea controla o PHP pelo cPanel \u2014 ativa a exibi\u00e7\u00e3o de erros para depurar, consulta os logs e ajusta cada diretiva em poucos cliques, com suporte em portugu\u00eas quando precisar.<\/p>\n      <a href=\"https:\/\/www.homehost.com.br\/hospedagem-de-sites\/\" style=\"display:inline-flex; align-items:center; gap:8px; background:#fff; color:#1a73e8; font-weight:700; text-decoration:none; padding:13px 26px; border-radius:10px; box-shadow:0 4px 12px rgba(0,0,0,.15);\">\n        Conhecer a hospedagem Homehost\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#1a73e8\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"><\/path><\/svg>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uma tela em branco no PHP quase nunca \u00e9 um mist\u00e9rio \u2014 \u00e9 s\u00f3 o erro escondido. Para revel\u00e1-lo, o essencial \u00e9: no c\u00f3digo, <code>ini_set('display_errors', 1)<\/code> mais <code>error_reporting(E_ALL)<\/code> no topo do script; ou, para o site todo, as mesmas diretivas no <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/php-ini\/\">php.ini<\/a> ou no .htaccess. Lembre da divis\u00e3o de pap\u00e9is \u2014 o <code>display_errors<\/code> liga a exibi\u00e7\u00e3o, o <code>error_reporting<\/code> escolhe o que aparece \u2014 e da regra de ouro: <strong>ligado s\u00f3 em desenvolvimento<\/strong>. Num site no ar, mantenha desligado e acompanhe pelo log de erros. Com a exibi\u00e7\u00e3o ativada, o PHP deixa de esconder o problema e passa a te dizer exatamente onde ele est\u00e1.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando um script PHP falha e a p\u00e1gina aparece totalmente em branco, quase sempre o motivo \u00e9 que a exibi\u00e7\u00e3o de erros est\u00e1 desligada \u2014 o PHP encontrou o erro, mas foi configurado para n\u00e3o mostr\u00e1-lo. Para revelar a mensagem, \u00e9 preciso ativar o display_errors. \u00c9 a primeira coisa a fazer para depurar qualquer problema [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":16925,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_helpful_status":1,"_lmt_disableupdate":"","_lmt_disable":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[20],"tags":[],"class_list":["post-16924","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Display errors PHP: como exibir todos os erros do PHP | Homehost<\/title>\n<meta name=\"description\" content=\"Como ativar a exibi\u00e7\u00e3o de erros do PHP: os comandos display_errors e error_reporting, os tr\u00eas caminhos (c\u00f3digo, php.ini e .htaccess) e por que desligar em produ\u00e7\u00e3o.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Display errors PHP: como exibir todos os erros do PHP | Homehost\" \/>\n<meta property=\"og:description\" content=\"Como ativar a exibi\u00e7\u00e3o de erros do PHP: os comandos display_errors e error_reporting, os tr\u00eas caminhos (c\u00f3digo, php.ini e .htaccess) e por que desligar em produ\u00e7\u00e3o.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Homehost\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Homehost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-21T12:13:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-21T12:13:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Gustavo Gallas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Homehost\" \/>\n<meta name=\"twitter:site\" content=\"@Homehost\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gustavo Gallas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/\",\"name\":\"Display errors PHP: como exibir todos os erros do PHP | Homehost\",\"isPartOf\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png\",\"datePublished\":\"2026-07-21T12:13:10+00:00\",\"dateModified\":\"2026-07-21T12:13:19+00:00\",\"author\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4\"},\"description\":\"Como ativar a exibi\u00e7\u00e3o de erros do PHP: os comandos display_errors e error_reporting, os tr\u00eas caminhos (c\u00f3digo, php.ini e .htaccess) e por que desligar em produ\u00e7\u00e3o.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#primaryimage\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png\",\"contentUrl\":\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png\",\"width\":1536,\"height\":1024,\"caption\":\"display errors php\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.homehost.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Display errors PHP: como exibir todos os erros do PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.homehost.com.br\/blog\/\",\"name\":\"Homehost\",\"description\":\"Hospedagem De Sites\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4\",\"name\":\"Gustavo Gallas\",\"description\":\"Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do B\u00f3ris, seu pet de estima\u00e7\u00e3o. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos t\u00e9cnicos. Contato: gustavo.blog@homehost.com.br\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Display errors PHP: como exibir todos os erros do PHP | Homehost","description":"Como ativar a exibi\u00e7\u00e3o de erros do PHP: os comandos display_errors e error_reporting, os tr\u00eas caminhos (c\u00f3digo, php.ini e .htaccess) e por que desligar em produ\u00e7\u00e3o.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/","og_locale":"pt_BR","og_type":"article","og_title":"Display errors PHP: como exibir todos os erros do PHP | Homehost","og_description":"Como ativar a exibi\u00e7\u00e3o de erros do PHP: os comandos display_errors e error_reporting, os tr\u00eas caminhos (c\u00f3digo, php.ini e .htaccess) e por que desligar em produ\u00e7\u00e3o.","og_url":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/","og_site_name":"Homehost","article_publisher":"https:\/\/www.facebook.com\/Homehost\/","article_published_time":"2026-07-21T12:13:10+00:00","article_modified_time":"2026-07-21T12:13:19+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png","type":"image\/png"}],"author":"Gustavo Gallas","twitter_card":"summary_large_image","twitter_creator":"@Homehost","twitter_site":"@Homehost","twitter_misc":{"Escrito por":"Gustavo Gallas","Est. tempo de leitura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/","url":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/","name":"Display errors PHP: como exibir todos os erros do PHP | Homehost","isPartOf":{"@id":"https:\/\/www.homehost.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#primaryimage"},"image":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png","datePublished":"2026-07-21T12:13:10+00:00","dateModified":"2026-07-21T12:13:19+00:00","author":{"@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4"},"description":"Como ativar a exibi\u00e7\u00e3o de erros do PHP: os comandos display_errors e error_reporting, os tr\u00eas caminhos (c\u00f3digo, php.ini e .htaccess) e por que desligar em produ\u00e7\u00e3o.","breadcrumb":{"@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#primaryimage","url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png","contentUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png","width":1536,"height":1024,"caption":"display errors php"},{"@type":"BreadcrumbList","@id":"https:\/\/www.homehost.com.br\/blog\/tutoriais\/php\/display-errors-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.homehost.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Display errors PHP: como exibir todos os erros do PHP"}]},{"@type":"WebSite","@id":"https:\/\/www.homehost.com.br\/blog\/#website","url":"https:\/\/www.homehost.com.br\/blog\/","name":"Homehost","description":"Hospedagem De Sites","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4","name":"Gustavo Gallas","description":"Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do B\u00f3ris, seu pet de estima\u00e7\u00e3o. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos t\u00e9cnicos. Contato: gustavo.blog@homehost.com.br"}]}},"modified_by":"ad_hmhst","jetpack_featured_media_url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/07\/display-errors-php.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/16924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=16924"}],"version-history":[{"count":1,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/16924\/revisions"}],"predecessor-version":[{"id":16926,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/16924\/revisions\/16926"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media\/16925"}],"wp:attachment":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=16924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=16924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=16924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}