Ошибки 500 и отладка
Как диагностировать и устранять ошибки 500 Internal Server Error.
Шаг 1: Проверьте лог
Самый важный шаг. Laravel записывает все ошибки в:
tail -100 storage/logs/laravel.log
Это покажет точное сообщение об ошибке, файл и номер строки.
Шаг 2: Включите режим отладки (временно!)
APP_DEBUG=true
Обновите страницу — вы увидите детальную страницу ошибки с:
- Сообщением об ошибке
- Трассировкой стека
- Деталями запроса
- Информацией об окружении
Немедленно установите APP_DEBUG=false после отладки!
Распространённые ошибки 500
«The stream or file could not be opened»
Причина: Проблема с правами доступа к хранилищу.
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache
«No application encryption key has been specified»
Причина: Отсутствует или недействителен APP_KEY.
php artisan key:generate
«SQLSTATE[HY000] Connection refused»
Причина: Сбой подключения к базе данных.
Проверьте настройки базы данных в .env и убедитесь, что MySQL запущен.
«Class 'X' not found»
Причина: Отсутствуют зависимости Composer.
composer install --no-dev --optimize-autoloader
php artisan config:clear
«View [x] not found»
Причина: Отсутствует или повреждён файл представления.
php artisan view:clear
Если файл действительно отсутствует, заново загрузите его из оригинального пакета.
«Maximum execution time exceeded»
Причина: Длительная операция (резервное копирование, миграция, AI-анализ).
Увеличьте таймаут PHP:
max_execution_time = 300
Сбор отладочной информации для поддержки
При сообщении об ошибке включите:
php -v # Версия PHP
php artisan --version # Версия Laravel
mysql --version # Версия MySQL
cat .env | grep -E "^(APP_|DB_|MAIL_|QUEUE_)" # Конфигурация (без паролей!)
tail -50 storage/logs/laravel.log # Последние ошибки