当我尝试在 localhost(php 版本:PHP 5.6.4-4ubuntu6.4 (cli))上运行 Task Schedular 时,它运行良好。
crontab
* * * * * php /home/aishatest/public_html/Aisha/Aisha/artisan schedule:run >> /dev/null 2>&1
应用程序/控制台/Kernel.php
<?php
namespace App\Console;
use App\Console\Commands\CheckOutfitAvailibilityCommand;
use App\Http\Controllers\OutfitCronController;
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 = [
// Commands\Inspire::class,
CheckOutfitAvailibilityCommand::class
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
\Log::error("Kernel");
//$schedule->command('inspire')
// ->everyMinute();
$schedule->command('CheckOutfitCommand')->cron('* * * * *');
}
}
应用程序/控制台/命令/CheckOutfitAvailibilityCommand.php
<?php
namespace App\Console\Commands;
use App\Http\Controllers\OutfitCronController;
use Illuminate\Console\Command;
class CheckOutfitAvailibilityCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
private $outfitCronController;
protected $signature = 'CheckOutfitCommand';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(OutfitCronController $outfitCronController)
{
parent::__construct();
$this->outfitCronController = $outfitCronController;
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
\Log::error("command handle");
$this->outfitCronController->checkOutfitAvailability();
}
}
但是当我尝试在 CentOs Server(php 版本 PHP 5.6.26 (cli))上运行时,它会给出如下错误
./storage/logs/laravel.log
[2016-09-22 05:54:02] local.ERROR: Kernel
[2016-09-22 05:54:05] local.ERROR: exception 'ErrorException' with message 'Invalid argument supplied for foreach()' in /home/aishatest/public_html/Aisha/Aisha/vendor/symfony/console/Input/ArgvInput.php:281
Stack trace:
#0 /home/aishatest/public_html/Aisha/Aisha/vendor/symfony/console/Input/ArgvInput.php(281): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Invalid argumen...', '/home/aishatest...', 281, Array)
#1 /home/aishatest/public_html/Aisha/Aisha/vendor/symfony/console/Application.php(743): Symfony\Component\Console\Input\ArgvInput->hasParameterOption(Array, true)
#2 /home/aishatest/public_html/Aisha/Aisha/vendor/symfony/console/Application.php(114): Symfony\Component\Console\Application->configureIO(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /home/aishatest/public_html/Aisha/Aisha/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(107): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /home/aishatest/public_html/Aisha/Aisha/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 {main}
如果我尝试在终端中手动运行以下命令,那么它也可以完美运行。
php /home/aishatest/public_html/Aisha/Aisha/artisan schedule:run
我试图找到解决方案,但找不到任何解决方案。