Como Gerar Relatório Automático de Erros PHP por E-mail (SSH & Avançado)
Olá, querido(a) cliente! 😊
Se você já se perguntou como saber quando algo dá errado no seu site — especialmente quando não está online para ver — a GeHost tem uma solução mágica para você: relatórios automáticos de erros PHP enviados por e-mail.
Isso significa que, assim que um erro acontecer no seu site (como um script que falha ou uma função que não existe), você recebe um e-mail com detalhes — sem precisar ficar olhando o servidor o tempo todo. É como ter um guardião digital cuidando do seu site por você!
Esse guia vai te mostrar, passo a passo, como configurar isso usando o SSH (acesso avançado) e o crontab (agendador de tarefas). Não se preocupe: mesmo que você não seja técnico, comigo você vai conseguir. Vamos juntos?
Antes de começar: o que você precisa?
- Um acesso SSH à sua conta (disponível no cPanel → "SSH Access").
- Um e-mail de destino para receber os erros (ex: seu e-mail principal).
- Conhecimento básico de como usar o terminal (você vai copiar e colar comandos).
Dica do Sensei: Se você ainda não tem acesso SSH, peça ao suporte da GeHost ou ative no cPanel → "SSH Access". É seguro e fácil!
Passo 1: Acesse o SSH via cPanel
1. Faça login no cPanel com suas credenciais.
2. No painel, encontre a seção “SSH Access” (geralmente na parte de “Segurança”).
3. Clique em “Manage SSH Access” ou “Gerenciar Acesso SSH”.
4. Se ainda não tiver chave SSH, clique em “Gerar Chave” (ou “Generate Key”) e siga as instruções. Se já tiver, clique em “Acessar via SSH”.
Passo 2: Ative o envio de erros PHP por e-mail
O sistema PHP pode ser configurado para enviar erros para um e-mail específico. Para isso, vamos usar um arquivo chamado php.ini ou um arquivo de configuração no diretório do seu site.
1. No seu Gerenciador de Arquivos, vá até a pasta principal do seu site (geralmente public_html).
2. Crie um novo arquivo chamado .user.ini (sem extensão) no diretório public_html.
3. Abra o arquivo e adicione estas linhas:
log_errors = On
error_log = /home/SEU_USUARIO/logs/php_errors.log
display_errors = Off
error_reporting = E_ALL
Substitua SEU_USUARIO pelo nome da sua conta no cPanel (ex: gehostuser).
Dica do Sensei: O arquivo .user.ini é lido pelo PHP automaticamente. Ele sobrescreve configurações globais do PHP apenas para seu site.
Passo 3: Crie um script para enviar erros por e-mail
1. No mesmo diretório (public_html), crie um novo arquivo chamado send_errors.php.
2. Cole o código abaixo:
<?php
// Caminho do arquivo de log de erros
$log_file = '/home/SEU_USUARIO/logs/php_errors.log';
// E-mail de destino
$to_email = 'seuemail@exemplo.com';
// Lê o arquivo de erro
if (file_exists($log_file)) {
$errors = file_get_contents($log_file);
if (!empty($errors)) {
$subject = '🚨 Erros PHP Detectados no seu Site!';
$message = "Novos erros foram encontrados no seu site:\n\n" . $errors;
$headers = 'From: erros@seusite.com' . "\r\n" .
'Reply-To: erros@seusite.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
// Envia o e-mail
if (mail($to_email, $subject, $message, $headers)) {
// Limpa o arquivo após enviar
file_put_contents($log_file, '');
echo "Erros enviados com sucesso!";
} else {
echo "Erro ao enviar e-mail.";
}
}
} else {
echo "Nenhum erro encontrado.";
}
?>
3. Substitua:
SEU_USUARIOpelo seu nome de usuário no cPanel.seuemail@exemplo.compelo e-mail que receberá os erros.erros@seusite.compor um e-mail válido (pode ser o mesmo de destino).
Passo 4: Configure o cron para rodar automaticamente
1. Volte ao cPanel e vá até “Cron Jobs” (no menu “Avançado”).
2. Clique em “Add New Cron Job”.
3. Defina os seguintes parâmetros:
- Minute:
*/5(a cada 5 minutos) - Hour:
*(todas as horas) - Day:
*(todos os dias) - Month:
*(todos os meses) - Weekday:
*(todos os dias da semana) - Command:
php /home/SEU_USUARIO/public_html/send_errors.php
4. Clique em “Add Cron Job”.
Dica do Sensei: Rodar a cada 5 minutos é suficiente. Se quiser menos frequência, use*/15ou0 */2 *(a cada 2 horas).
Passo 5: Teste e confirme
1. Faça um erro intencional no seu site, por exemplo:
<?php
echo $variavel_inexistente; // Erro: variável não definida
?>
2. Acesse a página com esse código.
3. Espere 5 minutos (ou menos, se o cron for mais rápido).
4. Verifique seu e-mail. Você deve receber uma mensagem como:
🚨 Erros PHP Detectados no seu Site!
Novos erros foram encontrados no seu site:
[05-Apr-2025 14:32:10 UTC] PHP Notice: Undefined variable: variavel_inexistente in /home/SEU_USUARIO/public_html/teste.php on line 2
🎉 Parabéns! Você está recebendo relatórios automáticos de erros. Seu site está protegido!
Importante: segurança e dicas finais
- Evite deixar o arquivo
send_errors.phpacessível publicamente. Use.htaccesspara bloquear o acesso, se necessário. - Nunca use e-mails reais de clientes ou senhas no código. Use um e-mail dedicado