我可以使用putty cli在服务器上执行各个工匠命令。例如。
php artisan inspire
和其他与数据库相关的自定义命令,在使用putty时工作正常。另外我把它们放在kernel.php的日程表中,就像这样
protected function schedule(Schedule $schedule){
$schedule->command('customcommand:execute')->everyMinute();
}
当我使用putty
运行此命令时php artisan schedule:run
它也可以正常工作。 问题是我无法执行schedule:运行命令通过服务器cron job ..命令在服务器上看起来像这样
php -d register_argc_argv=On /path/to/artisan schedule:run >> /dev/null 2>&1
有趣的是我能够通过服务器cron job执行单独的命令
即
php -d register_argc_argv=On /path/to/artisan customcommand:execute >> /dev/null 2>&1
同样有效......
只有该计划命令无效。
它也没有显示任何错误..
如果我不添加'-d register_argc_argv = On',我得到异常'ErrorException',消息'为foreach提供了无效的参数()
这里服务器我的意思是cPanal,我在'cron jobs'
下添加了这个命令答案 0 :(得分:0)
我想你忘了把你的任务添加到crontab。 这个教程很棒,我想我会回答你的问题。 https://laracasts.com/lessons/recurring-tasks-the-laravel-way
答案 1 :(得分:0)
在php.ini上禁用了ini指令register_argc_argv,我需要在每次调用时明确启用它,以便接受argc
和argv
参数。幸运的是,我使用exec
代替command
$schedule->exec('php -d register_argc_argv=On /path/to/artisan sms:bulk-send')
使用您的命令而不是sms:bulk-send
然后它将起作用。
答案 2 :(得分:0)
* * * * * /usr/local/bin/ea-php71 /home/your_domain/artisan schedule:run >> /dev/null 2>&1
答案 3 :(得分:0)
首先,
which php
获取您现在使用的 php
然后更改您的 cron 作业命令,例如
* * * * * /path/to/your/php /path/to/your/project/artisan schedule:run
指定您正在使用的 php 和项目
例如* * * * * /usr/local/bin/php /home/user/project/artisan schedule:run
它对我有用