Перейти к основному содержимому

Ошибки 500 и отладка

Как диагностировать и устранять ошибки 500 Internal Server Error.


Шаг 1: Проверьте лог

Самый важный шаг. Laravel записывает все ошибки в:

tail -100 storage/logs/laravel.log

Это покажет точное сообщение об ошибке, файл и номер строки.


Шаг 2: Включите режим отладки (временно!)

APP_DEBUG=true

Обновите страницу — вы увидите детальную страницу ошибки с:

  • Сообщением об ошибке
  • Трассировкой стека
  • Деталями запроса
  • Информацией об окружении
warning

Немедленно установите 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 # Последние ошибки

Следующие шаги