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 |