我的应用程序使用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
如何解决这个问题?
2条答案
按热度按时间odopli941#
我跑完之后
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兄弟
qcbq4gxm2#
是的,在live服务器上,您可以通过cron job x1c 0d1x注册它
然后你可以在cron job中注册你的命令。你可以向你的服务器提供商询问这个命令,然后像这样注册
/usr/local/bin/php /home/escuelar/your folder name/artisan schedule:run 1>> /dev/null 2>&1