Skip to content
← Все статьи

Ошибка 500 Internal Server Error: что значит и как починить

Ошибка 500 Internal Server Error — серверная (класс 5xx), которая говорит «что-то сломалось, но я не могу объяснить что». Это generic-код: сервер знает о проблеме, но не раскрывает детали клиенту из соображений безопасности. Для администратора 500 — красный флаг, требующий немедленного расследования через логи.

Разберём, что именно означает 500, какие 8 типовых причин её вызывают, как быстро найти первопричину в логах PHP, nginx, Apache и Node.js, и как починить для WordPress, Laravel, Symfony и Express.

Что означает HTTP 500

По RFC 9110 §15.6.1, код 500 указывает, что сервер столкнулся с непредвиденной ситуацией, которая помешала ему выполнить запрос. В отличие от 502 (bad gateway) или 503 (service unavailable), 500 обычно означает исключение в прикладном коде или проблему с интерпретатором.

8 частых причин 500 ошибки

  1. Фатальная ошибка в PHP/Python/Node.js — unhandled exception, синтаксическая ошибка, out of memory.
  2. Неправильные права на файлы (.htaccess, скрипты) — chmod 644 для файлов, 755 для директорий.
  3. Ошибка подключения к базе данных — неправильные credentials, MySQL упал, max_connections исчерпан.
  4. Превышен memory_limit в PHP (php.ini) или heap size в Node.js.
  5. Бесконечный цикл или рекурсия — скрипт завис, превышен max_execution_time.
  6. Сломанная директива в .htaccess или nginx config — опечатка в модуле, отсутствующий модуль.
  7. Отсутствующая зависимость — не установлен composer-пакет, npm-модуль, Python library.
  8. Проблема с кэшем framework — устаревший Laravel config cache, Symfony var/cache.

Где искать логи

Первый шаг при 500 — прочитать логи. Никогда не гадайте, всегда смотрите stack trace.

# PHP-FPM error log
tail -100 /var/log/php-fpm/error.log
tail -100 /var/log/php8.4-fpm.log

# nginx
tail -100 /var/log/nginx/error.log

# Apache
tail -100 /var/log/apache2/error.log

# Laravel
tail -100 storage/logs/laravel.log

# Node.js (pm2)
pm2 logs --lines 100

Для быстрой диагностики снаружи используйте HTTP Header Checker и Security Scanner от Enterno.io — они покажут, как отвечает сервер и утекает ли информация через заголовки.

Решения для популярных платформ

WordPress

Laravel

php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

Node.js / Express

// Global error handler
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({
    ok: false,
    error: process.env.NODE_ENV === 'production' ? 'Internal Server Error' : err.message
  });
});

nginx + PHP-FPM

fastcgi_read_timeout 60s;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
# increase in case of FastCGI timeout / buffer overflow

Безопасность: не раскрывайте stack trace в production

Никогда не показывайте полный stack trace в production — это OWASP A05 (Security Misconfiguration). Атакующий получает информацию о структуре кода, версиях фреймворка, путях на файловой системе.

# php.ini (production)
display_errors = Off
log_errors = On
error_log = /var/log/php/error.log
expose_php = Off

В Laravel: APP_DEBUG=false в .env. В Symfony: APP_ENV=prod.

Профилактика 500 ошибок

Часто задаваемые вопросы (FAQ)

В: Чем отличается 500 от 502 и 503?
О: 500 — исключение в приложении. 502 — proxy не смог получить ответ от upstream. 503 — сервис временно недоступен (перегрузка, maintenance).

В: Google видит мой сайт как 500 — это плохо для SEO?
О: Да. Частые 500 снижают crawl rate и могут привести к деиндексации. Держите uptime выше 99.9%.

В: Как предупредить 500 до жалобы пользователя?
О: Мониторинг. Enterno.io шлёт алерт в Telegram/Email за секунды после первого фейла.

Заключение

500 — серверная проблема, и лечится только на сервере. Всегда начинайте с логов, никогда не показывайте детали ошибок пользователю, настраивайте мониторинг и APM. Для быстрой внешней диагностики используйте HTTP Header Checker от Enterno.io.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: HTTP
HTTP
301 vs 302 редирект: разница и когда что использовать
15.04.2026 · 4 просм.
HTTP
Анализ серверных заголовков ответа: что они говорят о сайте
11.03.2026 · 39 просм.
HTTP
Ошибка 403 Forbidden: 8 способов исправить
15.04.2026 · 7 просм.
HTTP
Цепочки редиректов и их влияние на SEO
15.04.2026 · 5 просм.