Что делать, если Joomla 4 выдаёт ошибку Sorry, there was a problem we could not recover from. The server returned a "500 - Whoops, looks like something went wrong"?
Время от времени Joomla может отображать страницу с ошибкой вместо ожидаемой страницы. Существует два типа страниц ошибок:
- Страница ошибки 404, вид и содержание которой зависят от применяемого шаблона. Такие ошибки возникают, когда сервер не может найти запрашиваемую страницу или ресурс. Подробнее про ошибки 404 в Joomla и про возможности кастомизации страниц таких ошибок смотрите здесь.
- Страница ошибки 500 с текстом «Произошла критическая ошибка» (на английском "Sorry, there was a problem we could not recover from") на красном фоне, которая отображается при возникновении серьезной ошибки на стороне сервера. Далее будем разбираться с тем, как решаются подобные проблемы.
Возможные причины
Существует множество возможных причин возникновения фатальных ошибок с кодом 500, среди которых:
- Изменения в работе сервера, например, версия PHP, несовместимая с самой CMS Joomla или одним из установленных расширений.
- Проблемы с дисковым пространством, использованием памяти или тайм-аутом скрипта.
- Недавно установленное или включенное расширение, несовместимое с Joomla.
Что делать?
Для диагностики и выявления причины необходимо активировать режим отладки и показ ошибок на веб-страницах Joomla. Сделать это можно либо через админку в разделе Общие настройки, либо через файл configuration.php.
Активация режима отладки в админке
Если страница с текстом The server returned a "500 - Whoops, looks like something went wrong" возникает только на лицевых страницах:
- авторизуйтесь в админке,
- перейдите в раздел Общие настройки (Global Configuration),
- во вкладке Система (System) активируйте опцию Отладка системы (Debug System),
- во вкладке Сервер (Server) для опции Сообщения об ошибках (Error Reporting) установите значение Максимальные (Maximum).
- сохраните изменения.
Активация режима отладки через configuration.php
Если критическая ошибка возникает при запросах любых страниц сайта:
- найдите файл configuration.php в корневой папке сайта,
- измените права доступа к файлу на 644 (-rw-r--r--),
- откройте файл и измените значение переменной
$debug
наtrue
, а переменной$error_reporting
наmaximum
. - сохраните изменения в файле.
Что делать дальше?
Теперь при перезагрузке страницы с уведомлением о критической ошибке будет отображаться отладочная информация с ошибками, которые возникают при обработке запрашиваемой страницы сервером:
Первый элемент в трассировке стека указывает, где возникла ошибка. Иногда этого достаточно, чтобы выявить неисправное расширение. Иногда неисправное расширение находится дальше по трассировке стека. Если трассировка стека вам ни о чем не говорит, вы можете приложить её в комментарии к данному материалу, и мы постараемся вам помочь.
Если вы сумеете определить неисправное расширение, то отключите его одним из способов:
- через админку Joomla, если она доступна;
- через phpMyAdmin найдите расширение по названию в таблице базы данных
#__extensions
и установите его значение enabled на 0.
После решения проблемы
После того, как вы найдёте причину ошибки и устраните её, необходимо отключить режим отладки и показ ошибок на веб-страницах вашего сайта:
- Авторизуйтесь в панели управления,
- перейдите в Общие настройки (Global Configuration),
- во вкладке Система (System) отключите опцию Отладка системы (Debug System),
- во вкладке Сервер (Server) для опции Сообщения об ошибках (Error Reporting) установите значение По умолчанию для системы (System Default).
Упоминаемые термины:
Joomla, PHP, Админка, Кастомизация, Материал, Расширение, Шаблон, CMS, configuration.php, Внешний интерфейс, phpMyAdmin