bxmeta.@bxmeta

Ошибка 500 на сайте:
с чего начать.

Ошибка 500 говорит о нештатной ситуации при обработке запроса. По одной надписи нельзя определить, сломался ли код, подключение к базе или настройка окружения. Начать стоит с воспроизводимого примера и времени сбоя.

Что означает код 500

Код 500: общий ответ о внутренней ошибке сервера. Он сообщает о результате запроса, но не указывает конкретную неисправность. Два сайта с одинаковой страницей ошибки могут иметь совершенно разные причины. Это определение приведено в справочнике HTTP-кодов MDN.

Поэтому сообщение "у меня 500" полезно дополнить адресом страницы и действием: открыть каталог, отправить форму, сохранить товар или оформить заказ. Это сразу делает запрос проверяемым.

Сначала соберите факты

  • Адрес и действие. Какая страница и какой шаг приводят к сбою?
  • Время. Запишите дату, время и часовой пояс. Для плавающей ошибки полезны несколько точных примеров.
  • Масштаб. Не работает весь сайт, только вход в кабинет или один заказ?
  • Последнее изменение. Обновление кода, перенос, смена PHP, новый модуль или правка конфигурации.
  • Повторяемость. Возникает ли ошибка каждый раз и при каких условиях?

Скриншот помогает увидеть проявление. Но адрес, действие и время обычно важнее для поиска записи в журнале.

Где искать причину

Проверку ведут по цепочке: запрос к веб-серверу, выполнение приложения, обращение к базе и внешним сервисам. Важно сопоставить записи за один момент времени, а не просматривать только последнее сообщение в случайном файле.

Журнал запросов Nginx помогает сопоставить адрес, время и HTTP-статус. Его расположение и формат задаются конфигурацией; универсального пути для всех серверов нет. Подробности описаны в документации модуля журналирования Nginx.

Дальше смотрят журнал ошибок веб-сервера, PHP или самого приложения. Если доступна только панель хостинга, нужный раздел или выгрузку можно запросить у его поддержки. Не обязательно сразу получать полный административный доступ к серверу.

Каких действий избегать

Не стоит одновременно менять версию PHP, отключать модули, очищать все кеши и перезапускать сервисы: после этого трудно понять причину и сравнить результат. Каждое изменение должно иметь цель и способ проверки.

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

Если сбой появился после релиза, рассмотрите возврат предыдущей версии с разработчиком. Перед этим нужно понимать, менялась ли база и появились ли новые заказы: возврат файлов и возврат данных: разные действия.

Что отправить специалисту

Пример обращения

"На сайте example.ru после обновления не оформляется заказ. Ошибка появляется при нажатии “Оплатить”. Последний пример: 4 ноября в 11:20 по Москве. Каталог открывается. Есть доступ к панели хостинга и журналам".

Этого достаточно для начала разговора. Пароли, ключи API и копии базы не нужно публиковать в открытом сообщении: способ передачи доступов согласуется отдельно.

Если нужна помощь с разбором, посмотрите исправление ошибок и доработку сайта. Когда причина связана с окружением после переезда, может понадобиться проверка сервера и переноса.

Ещё по теме.

Все статьи ↗

Нужна помощь с задачей?

Пришлите адрес сайта и описание ситуации. Согласуем следующий шаг, объём и стоимость.

Обсудить задачу