Onde está o registo de erros do PHP, como o ler, e os erros que mais aparecem

Quando um site parte, há duas maneiras de reagir: adivinhar, ou ler o que o servidor já escreveu. A segunda é mais rápida e não exige saber programar — exige apenas saber onde procurar. E a boa notícia é que o registo já está ligado: não tem de activar nada.

Como está configurado, por omissão

Definição Está assim, e porquê
log_errors Ligado. Tudo o que o PHP recusa fica escrito num ficheiro, desde o primeiro dia.
display_errors Desligado. Os erros não aparecem na página — nenhum visitante vê caminhos de ficheiros nem nomes de bases de dados.
error_reporting Regista tudo excepto os avisos de funções obsoletas, que em sites com anos seriam milhares de linhas por dia.

É a combinação certa para um site no ar: grava tudo, mostra nada. O que muita gente faz — ligar o ecrã de erros para ver o que se passa e esquecer-se de desligar — é precisamente o que não se deve fazer.

Onde está o ficheiro — e porque não o encontra

Não há um registo de erros. Há um por pasta: o PHP escreve um ficheiro chamado error_log na pasta onde estava o script que falhou. É a razão por que tanta gente procura num sítio central e não encontra nada.

public_html/error_log            <- erros da raiz do site
public_html/en/error_log         <- erros das paginas dentro de /en
public_html/loja/error_log       <- erros da loja
error_log                        <- erros fora do public_html
1 No cPanel, abra o Gestor de Ficheiros e ligue Settings → Show Hidden Files.
2 Comece por public_html/error_log. É o mais provável.
3 Se a página que falha está numa subpasta, procure nessa subpasta — o ficheiro dela pode ter linhas que o da raiz não tem.
4 Clique com o botão direito e escolha Edit ou View. No Terminal, tail -50 public_html/error_log mostra as últimas 50 linhas, que é quase sempre o que interessa.
Não confunda com a pasta logs. O ~/logs/ da sua conta guarda outra coisa: o registo de acessos, mês a mês e comprimido — quem visitou, quando e que página. É útil para perceber tráfego, e inútil para perceber um erro de PHP. Para tráfego e consumo, ver como acompanhar o desempenho no cPanel.

Ler uma linha

Todas têm a mesma forma, e só três pedaços interessam:

[10-Sep-2026 15:02:38 UTC] PHP Warning:  include(): Failed opening
'includes/rodape.php' for inclusion in /home/conta/public_html/index.php on line 88
O pedaço O que lhe diz
A data, entre parênteses Se não é de agora, não é o seu problema. Compare com a hora a que o site falhou — ver a que horas está o servidor
O tipo Fatal error parou a página. Warning e Notice não pararam nada — são ruído, até serem muitos.
O ficheiro e a linha, no fim É a parte que resolve. Diz exactamente onde olhar. Se o caminho tem wp-content/plugins/, já sabe de quem é a culpa.
Um registo enorme é ele próprio um sintoma. Já vimos ficheiros error_log com megabytes e milhares de linhas iguais, repetidas a cada visita. Nenhuma delas parte o site, por isso ninguém repara — mas cada uma é trabalho que o servidor faz em vão, e o ficheiro consome espaço da sua conta. Se encontrar o mesmo aviso milhares de vezes, vale a pena corrigi-lo: costuma ser um plugin desactualizado ou um caminho de ficheiro errado.

Os erros que mais aparecem, e o que querem dizer

A mensagem A tradução
Fatal error: Cannot redeclare fn() A mesma função foi declarada duas vezes. Ou está em dois ficheiros, ou o mesmo ficheiro é carregado duas vezes. A correção habitual é trocar include por include_once.
Fatal error: Allowed memory size exhausted Bateu no limite de memória — ver os limites do PHP
Fatal error: Maximum execution time exceeded A operação demorou mais do que o permitido. Mesmo artigo.
Warning: include(): Failed opening Um ficheiro que o código espera não está onde ele procura. Repare se o caminho começa por ../: caminhos relativos partem quando a página é chamada de outro nível.
Parse error: syntax error, unexpected… Falta um ponto e vírgula, uma chaveta ou uma aspa. O número da linha é fiável; o erro costuma estar nessa linha ou na anterior.
Error establishing a database connection Não é PHP: são as credenciais no wp-config.php ou a base de dados. Ver os erros do site: 500, 403, 404 e 508

Ligar as mensagens no ecrã — e desligar a seguir

Às vezes o registo não chega e é preciso ver o erro na página. Dá, e é seu — está no selector de PHP do cPanel — mas leia primeiro o aviso.

Nunca num site no ar, e nunca esquecido. Com o display_errors ligado, qualquer visitante passa a ver caminhos completos de ficheiros, nomes de bases de dados e, por vezes, pedaços de consulta. É um mapa entregue a quem quiser atacar o site, e os varredores automáticos recolhem isso. Se tiver mesmo de o ligar, faça-o por minutos, reproduza o erro, e desligue imediatamente. Se é WordPress, há caminho melhor: ver erros comuns do WordPress.

O registo está vazio ou não existe

Isso quer dizer uma coisa muito específica: não houve erros de PHP. Não quer dizer que não houve problema — quer dizer que o problema não foi do PHP.

Se o registo está vazio mas o site falha Então olhe para
Erro 500 sem nada no error_log Quase sempre o .htaccess. Mude-lhe o nome e teste — erro 403 e as regras do .htaccess
Erro 508, ou o site lento a horas certas Recursos, não código — o site está lento
Página em branco sem uma linha sequer O erro pode ter acontecido antes de o PHP arrancar. Confirme a versão escolhida em ver e ajustar a configuração do PHP
Falha só para alguns visitantes Não é o código: é bloqueio por endereço ou cache. Ver os erros do site

Quando nos escrever, mande a linha

É o pedido mais útil que recebemos. Uma linha do error_log, com a data e o caminho do ficheiro, vale mais do que três parágrafos a descrever o sintoma — e costuma cortar a resposta de horas para minutos. Junte também o endereço da página que falha e a hora a que a viu falhar.

Antes de mexer em ficheiros de código, garanta que tem cópia — como repor os seus dados com o JetBackup. E sobre o que resolvemos nós e o que é da aplicação, até onde vai o nosso apoio. Se o registo mostrar ficheiros que você não reconhece, o assunto é outro: como saber se o seu site foi comprometido.

Tem uma linha do registo e não sabe o que ela quer dizer? Mande-a.

Abrir um pedido

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 600,00 MT/mês

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?