Ошибка 500 на сайте: что это и как исправить
Ошибка 500 значит «сервер не смог выполнить код сайта». Причина всегда есть в логе, вопрос только в том, где его найти и что с ним делать.
Что такое ошибка 500
«500 Internal Server Error», «HTTP ERROR 500», «Сайт не может обработать этот запрос»: всё это одно и то же. Браузер обратился к серверу, сервер запустил код сайта (PHP, Python, Node), и код упал. В отличие от ошибки 404, это не «страницы нет», а «сервер сломался на этой странице». Часто ломается сразу весь сайт, включая админку.
Первое, что нужно сделать
- Вспомните, что меняли. В 80 % случаев ошибка появляется сразу после действия: обновили плагин или тему, поменяли версию PHP на хостинге, установили модуль, правили
.htaccessилиfunctions.php. Откат этого действия чинит сайт быстрее, чем любая диагностика. - Откройте лог ошибок. На хостинге он обычно лежит в панели: «Логи», «Журнал ошибок»,
error_logв корне сайта или в папкеlogs/. Последние строки покажут файл и номер строки, где упал код. - Проверьте место на диске. Переполненный диск (обычно из-за бэкапов или логов) даёт 500 на ровном месте: сайт не может записать сессию или кеш.
Пять самых частых причин
1. Сломанный плагин или тема (WordPress, Joomla, OpenCart)
После обновления плагин оказался несовместим с версией PHP или другим плагином. Лечится отключением: по FTP переименуйте папку wp-content/plugins/имя-плагина, сайт тут же оживёт. Затем обновите или замените плагин.
2. Неподходящая версия PHP
Хостинги регулярно отключают старые версии PHP. Сайт, написанный под PHP 7.4, на PHP 8.2 падает с фатальной ошибкой. В панели хостинга версию можно переключить обратно за минуту, а потом уже спокойно готовить код к обновлению.
3. Ошибка в .htaccess
Одна лишняя строка или директива, которую не поддерживает сервер, кладёт весь сайт. Переименуйте файл в .htaccess_old: если сайт открылся, причина в нём.
4. Лимит памяти
В логе видно Allowed memory size exhausted. Тяжёлый плагин, импорт товаров или большая картинка выходят за лимит памяти PHP. Поднимается через memory_limit в настройках хостинга или php.ini.
5. База данных не отвечает
Неверный пароль после переезда, упавший MySQL, превышен лимит соединений. WordPress в таком случае пишет «Ошибка установки соединения с базой данных», другие CMS могут показывать просто 500.
Чего не делать
Не переустанавливайте CMS и не восстанавливайте бэкап целиком, пока не поняли причину: свежий бэкап может быть уже с проблемой, а старый откатит заказы и контент. Не включайте вывод ошибок на всех посетителей (display_errors), это показывает пути и код сайта всем подряд.
Починим сегодня, от 2 900 ₽
Опишите проблему, ИИ назовёт цену за минуту. Оплата после оценки, работа в тот же день, 14 дней гарантии.
Разработчик с 10-летним опытом, ИП, по оферте и с закрывающими документами.