Что делать, если Joomla 4 выдаёт ошибку Sorry, there was a problem we could not recover from. The server returned a "500 - Whoops, looks like something went wrong"?

Время от времени Joomla может отображать страницу с ошибкой вместо ожидаемой страницы. Существует два типа страниц ошибок:

  1. Страница ошибки 404, вид и содержание которой зависят от применяемого шаблона. Такие ошибки возникают, когда сервер не может найти запрашиваемую страницу или ресурс. Подробнее про ошибки 404 в Joomla и про возможности кастомизации страниц таких ошибок смотрите здесь.
  2. Страница ошибки 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" возникает только на лицевых страницах:

  1. авторизуйтесь в админке,
  2. перейдите в раздел Общие настройки (Global Configuration),
  3. во вкладке Система (System) активируйте опцию Отладка системы (Debug System),
  4. во вкладке Сервер (Server) для опции Сообщения об ошибках (Error Reporting) установите значение Максимальные (Maximum).
  5. сохраните изменения.

Активация режима отладки через configuration.php

Если критическая ошибка возникает при запросах любых страниц сайта:

  1. найдите файл configuration.php в корневой папке сайта,
  2. измените права доступа к файлу на 644 (-rw-r--r--),
  3. откройте файл и измените значение переменной $debug на true, а переменной $error_reporting на maximum.
  4. сохраните изменения в файле.

Что делать дальше?

Теперь при перезагрузке страницы с уведомлением о критической ошибке будет отображаться отладочная информация с ошибками, которые возникают при обработке запрашиваемой страницы сервером:

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

Если вы сумеете определить неисправное расширение, то отключите его одним из способов:

  1. через админку Joomla, если она доступна;
  2. через phpMyAdmin найдите расширение по названию в таблице базы данных #__extensions и установите его значение enabled на 0.

После решения проблемы

После того, как вы найдёте причину ошибки и устраните её, необходимо отключить режим отладки и показ ошибок на веб-страницах вашего сайта:

  1. Авторизуйтесь в панели управления,
  2. перейдите в Общие настройки (Global Configuration),
  3. во вкладке Система (System) отключите опцию Отладка системы (Debug System),
  4. во вкладке Сервер (Server) для опции Сообщения об ошибках (Error Reporting) установите значение По умолчанию для системы (System Default).