0

我在我网站的子域上安装了我的 laravel 应用程序,并且我已经设置了 cronjob,但它没有触发。

我已经通过终端测试了我的命令并且它的触发很好,所以问题都是关于 cronjob 而不是我猜的我的命令/控制台。

代码

Does not work

1- /home/example.com/public_html/process.example.com && php artisan schedule:run >> /dev/null 2>&1

2- php /home/example.com/public_html/process.example.com && php artisan schedule:run >> /dev/null 2>&1

kernel.php

protected $commands = [
    Commands\RenewInvoices::class,
];

protected function schedule(Schedule $schedule)
{
  $schedule->command('renew:invoices')
  ->everyMinute();
}

任何想法?

4

2 回答 2

2

解决了

显然我不得不从其他地方获取我的 php,/usr/local/lsws/lsphp74/bin/php而不是/usr/bin/php

/usr/local/lsws/lsphp74/bin/php /home/example.com/public_html/process.example.com && /usr/local/lsws/lsphp74/bin/php /home/example.com/public_html/process.example.com/artisan schedule:run >> /dev/null 2>&1

为了简化上面的命令并使其易于阅读,这里是它的结构:

PHP LARAVEL_APP && PHP ARTISAN COMMAND >> /dev/null 2>&1

于 2020-11-01T17:26:47.280 回答
1

Cronjobs 在运行时会忽略 PATH,因此如果 PATH 信息不完全可用,它可能无法工作。

请尝试修改 cronjob 以便使用完整路径

例如,将“php”更改为“/usr/bin/php”(请使用您在服务器中的实际 php 路径)

 /home/example.com/public_html/process.example.com && /usr/bin/php artisan schedule:run >> /dev/null 2>&1

/usr/bin/php /home/example.com/public_html/process.example.com && /usr/bin/php artisan schedule:run >> /dev/null 2>&1

还请包括工匠的完整路径。谢谢

于 2020-11-01T16:47:23.063 回答