我在godaddy共享主机下运行我的网络应用程序,我正在尝试运行一个cron作业,它将在我的laravel应用程序中调用我的日程安排任务。由于某种原因,调度程序未被调用。这是迄今为止我尝试过的godaddy中的命令:
- php / path / to / artisan schedule:run>> / dev / null 2>& 1
- home / lulzimf / php / home / path / to / artisan schedule:run 1>> / dev / null 2>& 1
- usr / local / php / home / path / to / artisan schedule:run 1>> / dev / null 2>& 1
- / usr / local / bin / path / to / artisan schedule:run>> / dev / null 2>& 1
以上命令似乎都没有执行我的任务调度程序,我尝试使用artisan命令调用该命令,它有效......你认为这不起作用?
这就是我的内核的样子:
<?php namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel {
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
'App\Console\Commands\Inspire',
'App\Console\Commands\UpdateClassSession',
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('inspire')
->hourly();
$schedule->command('class-session-update')
->everyFiveMinutes();
}
}
答案 0 :(得分:0)
不仅仅是godaddy,根据我对其他托管的体验,我必须编辑Schedule.php
中的Illmuniate\Console\Scheduling
文件。
然后我将Line 49
编辑为此return $this->exec("/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan {$command}", $parameters);
所以基本上这将运行queue:work
命令或任何其他命令,其中包含完整的php路径和工匠的完整路径。
在我的情况下,我还必须添加-ea_php 70
,因为laravel不支持cli使用的默认php版本。
所以:
在某些情况下,您可能会收到此错误:
undefined index argv
为此,您需要修改 php.ini 文件并将register_argc_argv
设置为on
。