当我运行一个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
Run Code Online (Sandbox Code Playgroud)
您可能正在使用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
Run Code Online (Sandbox Code Playgroud)
使用drush时,您可能必须提供--uri参数:
drush --uri=http://example.com cron
Run Code Online (Sandbox Code Playgroud)
你也可以在settings.php中设置$ base_url变量(这是完全有效的方法,而不是黑客).
让我们来分析几个可能的原因:
\n\n