当我执行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。
有什么建议么?
提前致谢,
狮子座
最佳答案
您的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变量(这是一种完全有效的方法,而不是hack)。
关于php - 如何获得Drupal的$ base_url来执行cron作业?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3993997/