问题描述
我在网站的子域中安装了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
还请包括工匠的完整路径。谢谢