在 Ubuntu 上为 Laravel 项目设置任务调度,你需要遵循以下步骤:
sudo apt-get update
sudo apt-get install php php-cli php-fpm composer
composer create-project --prefer-dist laravel/laravel your_project_name
将 your_project_name 替换为你的项目名称。
touch app/Console/Kernel.php
app/Console/Kernel.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 = [
//
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
//
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
schedule 方法中添加你想要定期执行的任务。例如,如果你想要每分钟运行一个名为 myTask 的命令,你可以这样做:protected function schedule(Schedule $schedule)
{
$schedule->command('myTask')->everyMinute();
}
crontab -e
* * * * * cd /path/to/your/laravel/project && php artisan schedule:run >> /dev/null 2>&1
将 /path/to/your/laravel/project 替换为你的 Laravel 项目的实际路径。
schedule 方法中定义的任务。注意:确保 Laravel 项目的存储和缓存目录具有正确的权限,以便调度器可以访问这些目录。你可以使用以下命令更改权限:
sudo chown -R www-data:www-data /path/to/your/laravel/project/storage
sudo chown -R www-data:www-data /path/to/your/laravel/project/bootstrap/cache
将 /path/to/your/laravel/project 替换为你的 Laravel 项目的实际路径。