我在godaddy共享主机下运行我的web应用程序,我正在尝试运行一个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();
}
}
1 回答
不仅仅是godaddy,根据我与其他托管的经验,我必须在
Illmuniate\Console\Scheduling
中编辑Schedule.php
文件 .然后我编辑
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版本 .所以:
检查PHP版本并确保laravel支持它 .
检查cli使用的PHP版本以执行您的cron .
验证并使用php的完整路径 .
验证并使用工匠的完整路径 .
在某些情况下,您可能还会收到此错误:
为此,您必须编辑 php.ini 文件并将
register_argc_argv
设置为on
.