Laravel Cron 作业无法在 AWS lightsail 上运行 LAMP

Laravel Cron Job not working on AWS lightsail LAMP

我正在为我的应用程序使用 Laravel 7 和 AWS lightsail LAMP 服务器。

当我运行这个

php artisan schedule:run

手动命令它工作正常。但是,当我为此创建一个 cron 作业时,它不起作用。

这是我的 cron 代码 laravel documention:

* * * * * cd /opt/bitnami/apache/htdocs && php artisan schedule:run >> /dev/null 2>&1

这是我的 app/Console/Karnel.php

<?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 = [
        Commands\DeactiveCoupon::class
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
         $schedule->command('coupon:deactive')->everyMinute();
         $schedule->command('queue:restart')->everyMinute();
         $schedule->command('queue:work')->everyMinute();
    }

    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}

但是,如果我添加这个 cron:

* * * * * cd /opt/bitnami/apache/htdocs && touch mytestfile.txt >> /dev/null 2>&1

它正在创建一个名为 mytestfile.txt

的新文件

但是,这个 Laravel 命令在 cron 中不起作用!

* * * * * cd /opt/bitnami/apache/htdocs && php artisan schedule:run >> /dev/null 2>&1

我该如何解决?

是的,在实时服务器上,您可以通过 cron 作业注册它

然后您可以在 cron 作业中注册您的命令。您可以向您的服务器提供商询问此命令,然后像这样注册

命令看起来像这样 /usr/local/bin/php /home/escuelar/your 文件夹 name/artisan schedule:run 1>> /dev/null 2>&1

我运行

之后

which php 我有 /opt/bitnami/php/bin/php

我的 cron 代码是:

* * * * * cd /opt/bitnami/apache/htdocs && /opt/bitnami/php/bin/php artisan schedule:run >> /dev/null 2>&1

对我有用 谢谢@apokryfos 兄弟