Monitor404

Ошибка 500 Internal Server Error: что это и как исправить

Код 500 Internal Server Error означает, что сервер получил запрос, но из-за внутреннего сбоя не смог его выполнить и не может сказать точнее, что сломалось. Посетитель почти ничего не исправит сам — причину ищет владелец сайта по логам.

Обновлено 11 октября 2026 г.

Что означает ошибка 500

500 Internal Server Error — самый общий из кодов группы 5xx. Согласно RFC 9110 (раздел 15.6.1), он означает, что сервер столкнулся с непредвиденной ситуацией и не смог выполнить запрос. Что именно пошло не так, код не уточняет: это может быть фатальная ошибка в PHP-скрипте, неверная директива в .htaccess, недоступная база данных или нехватка памяти.

Важное отличие от 4xx: при 500 запрос был корректным и дошёл до сервера, а сломалось что-то на стороне сайта. Ссылка, браузер и интернет посетителя ни при чём — в отличие от ошибки 404, где проблема в самом адресе.

Что делать посетителю

  1. Обновите страницу (Ctrl+F5). Если сбой был разовым — например, скрипт не успел выполниться в момент пика нагрузки, — страница откроется.
  2. Проверьте, открывается ли сайт у других: с телефона через мобильную сеть или через проверку кода ответа. Если 500 видят все, дело точно в сайте.
  3. Откройте другую страницу этого же сайта. Если ошибка только на одной странице — сломан конкретный скрипт или материал, а не весь сервер.
  4. Очистите кэш и куки для этого сайта или откройте его в режиме инкогнито: иногда битая сессия или cookie приводит к ошибке в личном кабинете.
  5. Отключите VPN или прокси и попробуйте снова. Редко, но сайт может по-разному отвечать на разные IP-адреса.
  6. Подождите 10–30 минут и сообщите владельцу сайта: время, адрес страницы и действие, после которого появилась ошибка.

Если ошибка 500 появилась не на сайте, а в приложении, личном кабинете или при обращении к API (1С, сервисы отчётности, игры), принцип тот же: сбой на стороне сервиса. Повторите позже и приложите к обращению в поддержку время запроса и текст ошибки.

Причины ошибки 500 на стороне сайта

ПричинаКак выглядит в логе
Синтаксическая ошибка или неподдерживаемая директива в .htaccess.htaccess: Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration
Фатальная ошибка PHP: нехватка памяти, исключение, отсутствующий файлPHP Fatal error: Allowed memory size of 134217728 bytes exhausted
Превышено время выполнения скриптаPHP Fatal error: Maximum execution time of 30 seconds exceeded
Циклический rewrite или редирект внутри сервераnginx: rewrite or internal redirection cycle while internally redirecting; Apache: Request exceeded the limit of 10 internal redirects
Неверные права на файлы и каталоги, неверный владелецPermission denied, Premature end of script headers
Недоступна база данных или неверные реквизиты подключенияВ логе приложения: ошибка соединения с MySQL/PostgreSQL
Конфликт плагина, темы или модуля после обновления CMSФатальная ошибка PHP со ссылкой на файл плагина или темы

Как владельцу найти причину: смотрим логи

Первое действие — открыть журналы ошибок в момент сбоя. Страница 500 в браузере почти никогда не содержит деталей, зато они есть в логах веб-сервера и PHP.

Журналы веб-сервера и PHP-FPM (пути зависят от дистрибутива)
# nginx
tail -n 100 /var/log/nginx/error.log

# Apache
tail -n 100 /var/log/apache2/error.log      # Debian/Ubuntu
tail -n 100 /var/log/httpd/error_log        # CentOS/RHEL

# PHP-FPM
tail -n 100 /var/log/php8.2-fpm.log
journalctl -u php8.2-fpm --since "30 min ago"

# все запросы с кодом 500 за сегодня (формат combined)
awk '$9 == 500 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

PHP: включите журнал вместо вывода ошибок

На рабочем сайте ошибки не должны выводиться посетителю, но обязаны записываться в файл:

php.ini
display_errors = Off
log_errors = On
error_log = /var/log/php/error.log
; если упираетесь в лимиты — увеличивайте осознанно, а не «на всякий случай»
memory_limit = 256M
max_execution_time = 60

Увеличение memory_limit и max_execution_time лечит симптом. Если скрипту регулярно не хватает памяти или времени, ищите тяжёлый запрос, бесконечный цикл или утечку, а не поднимайте лимит бесконечно.

WordPress

Включите запись ошибок в wp-config.php без вывода на экран, затем отключите плагины переименованием папки wp-content/plugins и вернитесь к стандартной теме. Подробнее — в руководстве по WordPress.

wp-config.php, до строки «That's all, stop editing»
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );      // пишет в wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // не показывать ошибки посетителям

.htaccess

Быстрая проверка: переименуйте .htaccess в .htaccess.off. Если сайт открылся — ошибка в нём. Верните файл и отключайте блоки директив по одному. Частые причины: php_value при работе PHP через FPM или CGI (там такие директивы недоступны и дают 500), опечатка в директиве, незакрытый </IfModule>, правило RewriteRule, зацикливающееся на себя. Основы синтаксиса — в руководстве по .htaccess.

Как проверить код ответа

Убедитесь, что сервер действительно отдаёт именно 500, а не страницу с текстом «ошибка» и кодом 200: некоторые CMS и фреймворки показывают красивую заглушку со статусом 200, и тогда поисковик сочтёт её обычной страницей. Проверьте адрес бесплатным инструментом или командой curl -I https://example.ru/страница.

Как ошибка 500 влияет на индексацию в Яндексе и Google

  • Единичный и короткий сбой не страшен: робот увидит 5xx и повторит попытку позже. Страница остаётся в индексе, пока ошибка не затянулась.
  • При частых 5xx поисковые роботы снижают скорость обхода сайта, чтобы не добить сервер. Новые и обновлённые страницы попадают в индекс позже.
  • Если страница отдаёт 500 в течение длительного времени (дни, а не минуты), она может выпасть из выдачи. Конкретные сроки поисковики не обещают.
  • Особенно опасна ошибка 5xx на robots.txt: Google в этом случае на время считает сканирование запрещённым. Следите, чтобы файл всегда отдавал 200.
  • Если сайт сознательно недоступен (плановые работы), отвечайте не 500, а 503 с заголовком Retry-After.

Monitor404 ловит именно 404 и не заменяет мониторинг доступности, но после починки 500 и отката релизов его стоит держать включённым: при переносах и откатах чаще всего и появляются битые URL.

Частые вопросы

Что значит ошибка 500 на сайте?

Сервер получил корректный запрос, но из-за внутреннего сбоя (ошибка в скрипте, неверный конфиг, недоступная база) не смог его выполнить. Это проблема сайта, а не пользователя.

Как исправить ошибку 500, если я посетитель?

Обновите страницу, очистите кэш и куки сайта, отключите VPN, попробуйте позже. Если не помогло — сообщите владельцу сайта: исправить 500 может только он.

Как найти причину ошибки 500 на своём сайте?

Откройте error.log веб-сервера и журнал PHP за момент сбоя. Там будет точная строка: фатальная ошибка PHP, неверная директива .htaccess, нехватка памяти или отказ базы данных.

Может ли ошибка 500 вызвать вылет из поиска?

Короткий сбой — нет, робот вернётся позже. Если страница или весь сайт отвечают 500 длительное время, страницы могут исчезнуть из выдачи, а скорость обхода снизится.

Читайте также