首页 > 解决方案 > Laravel 5.7 通过 AWS EC2 linux ami 上的 cron 计划 - 命令未运行

问题描述

我在 AWS EC2 中创建了一个 cron 作业,但它在预定时间没有工作。当我在 cli 中运行命令时,php artisan schedule:run它工作正常,但不能在预定时间自动执行。

php版本=7.2.11

laravel 框架 = 5.7

我使用在 crontab 中添加了 cron 条目crontab -e

* * * * * /usr/local/bin/php /var/www/html/artisan schedule:run >> /dev/null 2>&1

这是我的内核文件

/**
 * The Artisan commands provided by your application.
 *
 * @var array
 */
protected $commands=[
    '\App\Console\Commands\ExampleCronJob',
];
/**
 * Define the application's command schedule.
 *
 * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
 * @return void
 */
protected function schedule(Schedule $schedule)
{
    $schedule->command('example:mail:send')
             ->everyMinute();
}

标签: laravelamazon-web-servicesamazon-ec2

解决方案


根据我们的评论,问题在于您的 PHP 可执行文件的路径。您的 cron 作业定义中的路径错误。将其更改为:

* * * * * /usr/bin/php /var/www/html/artisan schedule:run >> /dev/null 2>&1

假设artisan可执行文件位于/var/www/html,那应该修复它。

如果您不确定这是否是正确的路径,您可以pwd从项目根目录(artisan 所在的位置)键入以获取 artisan 可执行文件的正确路径。


推荐阅读