#drupal-8 #drush
#drupal-8 #drush
Вопрос:
Я пытаюсь выполнить команды drush через crontab для сайта Drupal 8. Эти команды работают, когда я вызываю их напрямую, но при запуске через crontab моего пользователя я получаю следующую ошибку:
Drupal::$контейнер еще не инициализирован. Drupal::setContainer() должен
вызываться с реальным контейнером.
Другие сообщения предполагают, что это ошибка в более старых версиях Drush, но я на 10.3.5.
За последние несколько часов я перепробовал несколько вещей, включая перенастройку cron, но в конечном итоге кажется, что Drush неправильно загружает Drupal, но мне нужно иметь возможность запускать очередь из cron
Это тестовая команда, которую я запускаю, которая просто добавляется в журнал Drupal…
crontab (мой пользователь)
* * * * * /var/www/html/vendor/bin/drush scr /var/www/html/scripts/what.php -r /var/www/html/web
what.php
<?php
Drupal::logger('mymod')->info("CHECKING IN FROM CRON CLI...");
Вот еще одна команда, более близкая к тому, что я пытаюсь выполнить…
crontab (мой пользователь)
* * * * * /var/www/html/vendor/bin/drush queue:run commerce_recurring -r /var/www/html/web >> /var/www/html/private/logs/cron_commerce_recurring.log
Ошибка, которую я получаю здесь,:
Очередь команд: выполнить не найдено. Drush не удалось запросить базу данных. В
результате многие команды недоступны. Повторно запустите свою команду с помощью —debug
, чтобы увидеть соответствующие сообщения журнала.
Я получаю ту же ошибку при запуске этой команды с помощью консоли drupal.
Любые предложения приветствуются.
Спасибо.
Комментарии:
1. -r — это сокращение от —root .
Ответ №1:
Это оказалось проблемой с подключением к базе данных. Сложная часть заключалась в том, чтобы добраться до ошибки. Мне пришлось установить MTA, чтобы cron мог записывать ошибки в почтовый ящик моего локального пользователя, а затем добавить опцию —debug, чтобы я мог видеть реальную ошибку.
Я работаю над экземпляром DDEV, и по какой-то причине настройки DDEV не загружались. Проблема на другой день…