Вы открываете сайт, а вместо страницы — сухая надпись 500 Internal Server Error. Это одна из самых частых и одновременно самых неинформативных ошибок в вебе. Разберём, что она означает, чем отличается от 404 и как владельцу сайта быстро найти и устранить причину.
Что значит 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 — всегда сторона сервера, а не ваша. Как посетитель вы ничего не сломали и можете просто зайти позже. Владельцу сайта стоит действовать по порядку: сначала заглянуть в логи, где лежит настоящая причина, затем откатить последнее изменение — обновление плагина или правку кода. В паре «лог плюс откат» закрывается подавляющее большинство случаев, а хаотичный ремонт наугад только затягивает простой.