【发布时间】:2017-02-15 16:39:48
【问题描述】:
我写了一个调度任务。它在我的加工中工作正常。不幸的是,它不能在我的远程机器上运行。
这台机器是运行php7.0 php-fpm 的freeBSD。 cron 看起来像:
**MAILTO=mail@falk-roeder.de
@weekly /usr/local/bin/letsencrypt.sh -c
* * * * * php /var/www/alpha/beta/gamma/typo3/cli_dispatch.phpsh scheduler
#* * * * * php -r 'echo function_exists("foo") ? "yes" : "no";'
最后一个 crontab 被执行(如果我评论它)并将邮件输出发送给我。
如果我用奇怪的东西替换“调度程序”,我还会收到一封邮件,其中包含我应该选择的有效选项。 所以这对我来说意味着 cron 正在运行并且 cli_dispatch.phpsh 被正确调用。
在 TYPO3 后端,调度程序说配置很好。我可以手动启动 cron 并让它完成这项工作。
那么,还有什么原因……?
编辑
我发现原因是 TYPO3 调度程序没有请求正确的数据库。我有一个 AdditionalConfiguration 文件,其中 $GLOBALS['TYPO3_CONF_VARS']['DB']['database'] 中的数据库名称根据变量 $_SERVER['SERVER_NAME'] 进行了更改。但是在调度器中这个变量是空的。所以我不得不删除 AdditionalConfiguration 文件,一切都按预期工作。
现在的问题是,如何实现Scheduler根据Servername获取正确的Database?
【问题讨论】:
标签: php cron scheduler typo3-7.6.x