问题描述
我试图通过crontab为Drupal 8站点执行drush命令。当我直接调用它们时,这些命令有效,但是当通过用户的crontab运行时,出现以下错误:
\ Drupal :: $ container尚未初始化。 \ 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控制台上运行此命令时,我也遇到同样的错误。
任何建议表示赞赏。
谢谢。
解决方法
事实证明这是数据库连接问题。棘手的部分是要得到错误。我必须安装MTA,以便cron可以将错误写入本地用户的邮箱,然后添加--debug选项,以便可以看到真正的错误。
我正在处理DDEV实例,由于某种原因未加载DDEV设置。另一天的问题...