Como gerar relatório automático de erros PHP por e-mail Print

  • 0

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.

Tela de LOGIN do cPanel (campos Usuário e Senha + botão Log in)

2. No painel, encontre a seção “SSH Access” (geralmente na parte de “Segurança”).

Painel inicial (home) do cPanel com os grupos de ferramentas (E-mail, Arquivos etc.)

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).

Gerenciador de Arquivos (árvore de pastas public_html etc.)

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_USUARIO pelo seu nome de usuário no cPanel.
  • seuemail@exemplo.com pelo e-mail que receberá os erros.
  • erros@seusite.com por 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 */15 ou 0 */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.php acessível publicamente. Use .htaccess para bloquear o acesso, se necessário.
  • Nunca use e-mails reais de clientes ou senhas no código. Use um e-mail dedicado

Was this answer helpful?

« Back