当我运行cron作业时,如何让$ base_url显示我的Drupal站点的正确URL?我是否必须手动设置全局$ base_url才能实现?我是否必须以注册用户身份运行cron作业?
当我手动运行mysite.com/cron.php时,一切似乎都运行良好:$ base_url设置为正确的url。但是,当我通过cron或drush运行类似的命令时,$ base_url被设置为通用的“http:// default”。
有趣的是,当我从Drupal内部手动运行cron作为注册用户时(例如使用devel),$ base_url会指向正确的URL。
有什么建议吗?
提前致谢,
利奥
答案 0 :(得分:6)
您的cron可能设置错误。
你可以使用wget或curl,这实际上与“手动”运行cron相同。像这样:
5 * * * * wget http://example.com/cron.php
您可能正在使用drupal.sh,声称您应该使用“http://default/cron.php作为URI”。这将打破$ base_url处理。以下可能与drupal.sh一起使用。
5 * * * * /path/to/drupal.sh --root /home/site/public_html/ http://example.com/cron.php
使用drush时,您可能需要提供--uri参数:
drush --uri=http://example.com cron
您也可以在settings.php中设置$ base_url变量(这是完全有效的方法,而不是黑客攻击)。
答案 1 :(得分:0)
让我们走几条可能的原因: