laravel 错误 cron 使用

laravel error cron uses

Laravel错误

cron uses /usr/bin/php /home/sitevk/artisan schedule:run 1>> /dev/null: 2>&1

App\Console\Kernel:

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\User;
use Log;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        \App\Console\Commands\Inspire::class,
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        Log::info('1');
        $schedule->call(function () {
            $user = User::find(1);
            $user->first_name = 'cron...';
            $user->save();
        })->everyMinute();
    }
}

日志:

[2015-08-31 19:14:02] local.ERROR: exception 'ErrorException' with message 'Invalid argument supplied for foreach()' in /home/sitevk/vendor/symfony/console/Input/ArgvInput.php:287 Stack trace: #0 /home/sitevk/vendor/symfony/console/Input/ArgvInput.php(287): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Invalid argumen...', '/home/sitevk/ve...', 287, Array)
#1 /home/sitevk/vendor/symfony/console/Application.php(827): Symfony\Component\Console\Input\ArgvInput->hasParameterOption(Array)
#2 /home/sitevk/vendor/symfony/console/Application.php(123): Symfony\Component\Console\Application->configureIO(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /home/sitevk/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(100): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /home/sitevk/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 {main}

我也遇到了同样的问题。我试图 运行 cPanel 上的 cron。

我做的是,
* * * * * php-cli -q /path/to/artisan schedule:run >> /dev/null 2>&1

而不是
* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1

不知道如何,但它对我有用。问题可能与 php 命令提示符有关。

有必要放更高版本的php

错误:ArgvInput.php 第 280 行

register_argc_argv 在 php.ini

中设置为关闭

我们需要将 register_argc_argv 设置为 true。

如果问题仍然存在,请尝试在命令中使用 php-cli -q 而不是 php。 示例:
* * * * * php /home/path/to/artisan schedule:run 1>> /dev/null 2>&1

* * * * * php-cli -q /home/path/to/artisan schedule:run >> /dev/null 2>&1

我在共享 cpanel 主机上配置 Laravel cron 作业时遇到了同样的错误,其他答案对我不起作用,所以这是我的解决方案,以防它能帮助别人:

而不是这个:

cd /home/user/path/to/project && /usr/bin/php-cli -q artisan schedule:run

我最终使用了这个:

/usr/local/bin/ea-php72 /home2/path/to/project/artisan schedule:run

这与其他答案中提到的使用 php-cli 基本相同,但在我的主机上使用 /usr/bin/php-cli 导致另一个错误,因为它没有找到。我在这里查看 cpanel 文档时偶然发现了这个符号链接:https://documentation.cpanel.net/display/EA4/PHP+Home#PHPHome-ModifyPHP

当我尝试使用我的 cpanel 终端迁移数据库时,我遇到了这个问题。之后我使用putty并连接同一台服务器,然后使用php artisan migrate命令,解决了,希望对您有所帮助。