В данной статье я буду писать об ошибках 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
При проверке оказалось сбой на хостинге.
Именно на этом домене ранее была установлена версия 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';
Перегрузите страницу и вы увидите подробное описание ошибки, вместо того, что было до этого.