Erros 500 & Depuração
Como diagnosticar e corrigir erros 500 Internal Server Error.
Passo 1: Verificar o Log
O passo mais importante. O Laravel registra todos os erros em:
tail -100 storage/logs/laravel.log
Isso mostrará a mensagem de erro exata, o arquivo e o número da linha.
Passo 2: Habilitar o Modo Debug (Temporariamente!)
APP_DEBUG=true
Atualize a página — você verá uma página de erro detalhada com:
- Mensagem de erro
- Stack trace
- Detalhes da requisição
- Informações do ambiente
Defina APP_DEBUG=false imediatamente após depurar!
Erros 500 Comuns
"The stream or file could not be opened"
Causa: Problema de permissões de armazenamento.
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache
"No application encryption key has been specified"
Causa: APP_KEY ausente ou inválida.
php artisan key:generate
"SQLSTATE[HY000] Connection refused"
Causa: Falha na conexão com o banco de dados.
Verifique as configurações do banco de dados no .env e certifique-se de que o MySQL está rodando.
"Class 'X' not found"
Causa: Dependências do Composer ausentes.
composer install --no-dev --optimize-autoloader
php artisan config:clear
"View [x] not found"
Causa: Arquivo de view ausente ou corrompido.
php artisan view:clear
Se o arquivo estiver genuinamente faltando, faça o upload novamente do pacote original.
"Maximum execution time exceeded"
Causa: Operação demorada (backup, migração, análise de IA).
Aumente o timeout do PHP:
max_execution_time = 300
Coletando Informações de Depuração para Suporte
Ao relatar um bug, inclua:
php -v # Versão do PHP
php artisan --version # Versão do Laravel
mysql --version # Versão do MySQL
cat .env | grep -E "^(APP_|DB_|MAIL_|QUEUE_)" # Configuração (sem senhas!)
tail -50 storage/logs/laravel.log # Erros recentes