⚠️
Решение

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

⏱ 5 мин чтенияИнфоЗал · База знаний

Вы открываете сайт, а вместо страницы — сухая надпись 500 Internal Server Error. Это одна из самых частых и одновременно самых неинформативных ошибок в вебе. Разберём, что она означает, чем отличается от 404 и как владельцу сайта быстро найти и устранить причину.

Браузер Сервер запрос → ← 500 (ошибка на сервере)
500 означает, что сервер получил запрос, но не смог его выполнить из-за внутренней ошибки.

Что значит 500

Код 500 говорит: «сервер получил ваш запрос, но что-то в нём самом сломалось». В отличие от 404 (страница не найдена — проблема в адресе), здесь дело не в ссылке, а на стороне сайта. Для обычного посетителя вывод один — подождать или зайти позже. А вот владельцу нужно копать.

Где искать настоящую причину

Сообщение 500 намеренно скрывает детали от посетителей из соображений безопасности. Реальная причина всегда в логах сервера:

  • Apache — файл error.log;
  • nginx — обычно /var/log/nginx/error.log;
  • в панелях хостинга есть раздел «Логи ошибок».

Именно там будет точная строка с описанием сбоя и номером строки в коде.

Частые причины и как их проверить

  • Права на файлы. Скрипты не должны иметь права 777. Обычно правильно 644 для файлов и 755 для папок.
  • Ошибка в .htaccess. Одна опечатка в директиве роняет весь сайт. Переименуйте файл и проверьте — если заработало, дело в нём.
  • Лимит памяти. Тяжёлый скрипт мог упереться в memory_limit — увеличьте лимит или оптимизируйте код.
  • Ошибка в коде или плагине. Особенно если 500 появилась сразу после обновления.

Как увидеть текст ошибки в PHP

На время отладки включите вывод ошибок:

ini_set('display_errors', 1);
error_reporting(E_ALL);
Не оставляйте вывод ошибок включённым на «боевом» сайте: подробные сообщения могут раскрыть структуру проекта и данные, чем воспользуются злоумышленники. Включили — починили — выключили.

Быстрый алгоритм

В большинстве случаев 500 появляется сразу после изменения. Поэтому первый и самый эффективный шаг — откатить последнее действие: вернуть прежнюю версию файла, отключить недавно установленный плагин, отменить правку конфигурации. Это решает проблему в разы быстрее, чем чтение логов вслепую.

Частые ошибки

  • Пытаются чинить наугад, не заглянув в логи.
  • Ставят права 777 «чтобы точно работало» — и создают дыру в безопасности.
  • Оставляют display_errors включённым после отладки.

Коротко: вопросы и ответы

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

Чем 500 отличается от 502 и 503? 502 — сбой между серверами (шлюз), 503 — сервис временно недоступен (перегрузка/обслуживание), 500 — общая внутренняя ошибка приложения.

Как быстрее всего починить? Откатить последнее изменение и посмотреть лог ошибок — в паре это закрывает большинство случаев.

Что запомнить

Ошибка 500 — всегда сторона сервера, а не ваша. Как посетитель вы ничего не сломали и можете просто зайти позже. Владельцу сайта стоит действовать по порядку: сначала заглянуть в логи, где лежит настоящая причина, затем откатить последнее изменение — обновление плагина или правку кода. В паре «лог плюс откат» закрывается подавляющее большинство случаев, а хаотичный ремонт наугад только затягивает простой.

Была ли статья полезной?
Реклама
Рекламный блок РСЯBlock ID: R-A-XXXXXX-3