如何让 Drupal 的 $base_url 执行 cron 作业?
当我运行 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。
有什么建议吗?
预先感谢,
利奥
How to get $base_url to show the correct url for my Drupal site when I'm running a cron job? Do I have to set the global $base_url manually for that to happen? Do I have to run the cron job as a registered user?
When I run mysite.com/cron.php by hand everything seems to work fine: $base_url is set to the correct url. However, when I run a similar command via cron or drush, $base_url is set to a generic "http://default".
The funny thing is that when I run cron manually as a registered user from inside Drupal (using devel, for instance), $base_url aways points to the right url.
Any suggestions?
Thanks in advance,
Leo
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的 cron 可能设置错误。
您可以使用 wget 或 curl,这实际上与“手动”运行 cron 相同。像这样的事情:
您可能正在使用 drupal.sh,它声称您应该使用“http://default/cron.php 作为 URI”。这将破坏 $base_url 处理。以下可能适用于 drupal.sh。
使用 drush 时,您可能必须提供 --uri 参数:
您也可以在 settings.php 中设置 $base_url 变量(这是一种完全有效的方法,而不是 hack)。
Your cron is probably set up wrong.
You can use wget or curl, which is effectively the same as running the cron "by hand". Something like this:
You are probably using drupal.sh, which claims that you should use "http://default/cron.php as the URI." This will break the $base_url handling. The following might work with drupal.sh.
When using drush, you might have to supply the --uri argument:
You could also just set the $base_url variable in settings.php (which is a perfectly valid way to do it, not a hack).
让我们分析几个可能的原因:
Let's should walk trough several possible causes: