Ошибки Drupal и способы решения

14-03-2021

В данной статье я буду писать об ошибках CMS Drupal 8 / 9 (когда вы всё сделали как вам кажется, а сайт почему-то не запускается). По мере возникновения ошибок с которыми я столкнусь в процессе работы, я буду дополнять данную статью.

Никогда не спешите сразу всё удалять и ставить по новой. Иногда проблема решается довольно быстро. Как правило, все вопросы почему сайт на CMS Drupal 8 / 9 не запускается появляются по следующим причинам:

1. Неправильные настройки.

1. Вы что-то упустили в настройках файлов setting.php (проверьте всё спокойно, каждую строку ваших настроек), .htaccess (попробуйте заменить стандартным файлом и протестировать) или вы не назначили папку web корневой (при стандартной установке Drupal 8 / 9 с помощью composer).

2. У хостинга был сбой и надо проверить настройки.

Сегодня обновляя сайт на хостинге получил такую ошибку по завершению обновления:

Fatal error: Declaration of Drupal\Core\ProxyClass\File\MimeType\ExtensionMimeTypeGuesser::guessMimeType($path): string must be compatible with Symfony\Component\Mime\MimeTypeGuesserInterface::guessMimeType(string $path): ?string in /home/xxxx/xxxx.xxx/web/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php on line 15

При проверке оказалось сбой на хостинге.

Image

Именно на этом домене ранее была установлена версия PHP 7.4, которая почему-то стала версией PHP 7.1. А как вы знаете Drupal нужна для работы версия PHP не ниже 7.3.

Попытка сменить версию PHP самостоятельно не увенчалась успехом. Но техподдержка решила этот вопрос в течении 5 минут.

3. Если у вас на сайте Drupal 8 / 9 выскочила ошибка:

The website encountered an unexpected error. Please try again later.

Вариант А. Вы можете войти в админ панель.

Перейдите по адресу /admin/reports/dblog и посмотрите все ошибки. Конечно если модуль Database logging был до этого включен.

Вариант Б. Вы не можете войти в админ панель.

Откройте файл /sites/default/settings.php и вставьте в его конец следующую строку:

$config['system.logging']['error_level'] = 'verbose';

Перегрузите страницу и вы увидите подробное описание ошибки, вместо того, что было до этого.

Похожие статьи