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 兄弟
我正在为我的应用程序使用 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 兄弟