Рейтинг:0

Создание пользовательского модуля вызвало сообщение «На веб-сайте произошла непредвиденная ошибка. Повторите попытку позже».

флаг mu

Drupal 9.2.7 на XAMPP 7.3.29, 7.4.21 на Windows 10 Домашняя.

Я попытался создать собственный модуль, который позволяет глобальный JavaScript и CSS (действующий на всех веб-страницах моего веб-сайта), создав каталог корень/модули/глобальные со следующими файлами:

globalrs.info.yml

Название: глобалисты
тип: модуль
core_version_requirement: ^8 || ^9
описание: 'глобалисты'
библиотеки:
  - глобалисты/глобалисты

globalrs.module

функция globalrs_preprocess_page(&$variables) {
  $variables['#attached']['library'][] = 'globalrs/globalrs';
}

globalrs.libraries.yml

глобалисты:
  js:
    поведение.js: {}
  CSS:
    тема:
      стиль.css: {}

стиль.css

* {
    фон: красный;
}

Моя проблема

Моя проблема в том, что сайт не загружается, вместо этого появляется следующая ошибка:

Сайт обнаружил непредвиденную ошибку. Пожалуйста, повторите попытку позже.

Даже если я удалю каталог модуля и сброслю все кеши (удалю все кеш_ таблицы, а также кештеги table и очищая кеш браузера, на веб-сайте все еще есть эта ошибка;
Поскольку эта ошибка является общей, я не знаю, как начать решать проблему.

Баг как возможная причина

Возможно, проблема началась после того, как я добавил $settings['rebuild_access'] = ИСТИНА; в конец /sites/default/settings.php, сохранил файл, а затем перешел в своем веб-браузере на localhost/example.com/core/rebuild.php, где я получил следующую ошибку:

Неустранимая ошибка: Uncaught PDOException: SQLSTATE [HY000] [1044] Доступ отказано для пользователя «example.com» @ «localhost» в базе данных «example.com» в

Изменить (удаление остальных сообщений об ошибках, поскольку это вызвано несвязанной ошибкой при восстановлении резервной копии):

Я считаю, что проблема возникла когда-то, когда я пытался восстановить резервное копирование сайта в новую пустую базу данных с тем же именем, которое был зарегистрирован как связанный с пользователем базы данных (или оказался такой) но на самом деле не было

Обновление - решение

Я вставляю это сюда после того, как Клайв удалил мой ответ:

Я отозвал все привилегии, связанные с базой данных, которые пользователь базы данных был на база данных с тем же именем а потом повторно предоставлен эти специфичные для базы данных привилегии1 этому пользователю; Затем я мог получить доступ к веб-сайту.

флаг mu
Клянусь, я не могу понять ни одного отрицательного голоса в этом посте; мужчина попал в беду и ищет неотложной помощи в унижении; ощущение уже дерьмовое, не нахожу зачем делать еще хреновее. Drupal **создан** также для создателей веб-сайтов, а не только для Drupal-программистов; это позиция сообщества! Откройте drupal.org и прочтите его.
berliner avatar
флаг bd
Если у вас есть доступ к журналу ошибок серверов, вам нужно найти там фактическое сообщение об ошибке. Или, что еще лучше, если вы просматриваете этот сайт на своем локальном компьютере, настройте PHP для отображения ошибок.
Kevin avatar
флаг in
Одна вещь, которую вы не можете сделать, это включить модуль, а затем удалить его из файловой системы, не отключив его предварительно. Это только усугубит проблемы. Фактическая ошибка будет в журналах php или apache. Вам также не нужно очищать кеши с помощью клиента sql - вы можете сделать это от администратора. Здесь что-то еще не так, поэтому вам нужны логи XAMPP для php и apache.
No Sssweat avatar
флаг ua
`Доступ запрещен для пользователя 'example.com'@'localhost' к базе данных 'example.com'` Похоже, что изменение, которое вы внесли в settings.php, испортило соединение с БД. Вы можете удалить файл settings.php и позволить Drupal воссоздать его при попытке просмотра сайта. Вы получите мастер установки, как если бы вы делали новую установку, за исключением того, что БД не пуста, она не будет переопределена.
флаг mu
@Kevin, спасибо, я не включал модуль (на вкладке «расширить»), но, может быть, для пользовательских модулей он даже не нужен?
флаг mu
@NoSssweat Я только что попробовал это, и в мастере установки получаю: «Не удалось подключиться к вашему серверу базы данных. Сервер сообщает следующее сообщение: SQLSTATE [HY000] [1044] Отказано в доступе для пользователя «example.com» @ «localhost» к базе данных «example.com».
флаг mu
Хорошо, проблема решена; Я могу получить доступ к веб-сайту; Я написал в ответе, что я сделал.
флаг mu
Может кто-нибудь объяснить, почему Клайв удалил мой ответ?...
Рейтинг:2
флаг cn

Перед вы создаете собственный набор модулей

  • Все сообщения с информацией об отслеживании

в админ/конфигурация/разработка/логгирование. Эта опция доступна в ядре Drupal без каких-либо установленных инструментов разработки.

Затем вы получите более полезное сообщение об ошибке, если что-то пойдет не так.

По умолчанию

  • Никто

сообщение об ошибке заменяется на «На веб-сайте произошла непредвиденная ошибка. Повторите попытку позже».. Единственная цель этого сообщения — скрыть настоящую ошибку в рабочей среде.

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

$config['system.logging']['error_level'] = 'подробный';

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

флаг mu
Дерьмо, я не создавал снапшота перед созданием модуля, а только перед тем, как сбросить все кеши после завершения его создания ... Я не думал, что простые файлы на что-то повлияют.
флаг cn
@Alkalix Если вы не сделали ничего, что повлияло бы на базу данных в модуле, вы можете заново создать модуль с тем же ** именем машины **, и Drupal не будет жаловаться.
флаг mu
@PatrickKenny да, я пробовал...По какой-то причине сайт все еще не работает, я попробую то, что было предложено в комментариях к вопросу.
флаг mu
Клайв удалил мой ответ, который я хотел отметить как наиболее полезный, потому что я твердо верю, что он будет наиболее полезным (из доступных здесь ответов) для решения описанной проблемы; что тут происходит?...
4uk4 avatar
флаг cn
Вопрос: *Создание пользовательского модуля вызвало «На веб-сайте произошла непредвиденная ошибка. Повторите попытку позже».*. Я уверен, что вы могли бы решить эту проблему, отобразив полное сообщение об ошибке, возможно, только синтаксическую ошибку. Ошибка, с которой вы столкнулись позже после восстановления резервной копии, не имеет отношения к делу. Восстановление может потребоваться для большей части вопросов, заданных здесь, если они не будут решены.При обмене стеками у вас не может быть двух несвязанных вопросов в одном вопросе.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.