服务器中的Laravel cronjob无法运行 代码

问题描述

我在网站的子域中安装了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();
}

有什么想法吗?

解决方法

已解决

显然,我不得不从其他地方/usr/local/lsws/lsphp74/bin/php而不是/usr/bin/php那里获得我的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

,

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

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