我已使用crontab -e
更新了我的crontab,每分钟运行一次Laravel任务调度程序。它没有工作,所以我将其设置为将其输出添加到日志文件中,如下所示:
* * * * * php /path/to/project/artisan schedule:run >> cron_output.log
现在,日志包含以下消息:
Parse error: parse error in /path/to/project/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233
这是它指出的方法(我在第233行旁边评论过):
function cache()
{
$arguments = func_get_args();
if (empty($arguments)) {
return app('cache');
}
if (is_string($arguments[0])) {
return app('cache')->get($arguments[0], $arguments[1] ?? null); //line 233
}
if (! is_array($arguments[0])) {
throw new Exception(
'When setting a value in the cache, you must pass an array of key / value pairs.'
);
}
if (! isset($arguments[1])) {
throw new Exception(
'You must specify an expiration time when setting a value in the cache.'
);
}
return app('cache')->put(key($arguments[0]), reset($arguments[0]), $arguments[1]);
}
我不理解这个问题,因为Laravel正常运行。 PHP版本是7.2(基于php -v
和phpinfo()
),所以这不应该是一个问题。有可能某种程度上crontab使用的是旧版本的PHP吗?如果是这样我该如何解决这个问题?还有其他想法吗?