在 Debian 上用 Laravel 设置“定时任务”(通常指 Laravel 任务调度 / Task Scheduling),核心思路是:
只让系统 cron 每分钟调用一次 Laravel 调度器,具体任务写在 Laravel 中
/var/www/laravel)/usr/bin/php)cd /var/www/laravel
编辑:
app/Console/Kernel.php
在 schedule() 中定义任务,例如:
protected function schedule(Schedule $schedule)
{
// 每天凌晨执行
$schedule->command('inspire')->daily();
// 每分钟执行
$schedule->call(function () {
// 自定义逻辑
})->everyMinute();
}
crontab -e
如果是给 Web 项目用,建议用 项目所属用户(如
www-data或部署用户)
sudo crontab -u www-data -e
* * * * * cd /var/www/laravel && /usr/bin/php artisan schedule:run >> /dev/null 2>&1
说明:
* * * * *:每分钟schedule:run:Laravel 判断该执行哪些任务php artisan schedule:run
tail -f /var/www/laravel/storage/logs/laravel.log
检查:
sudo systemctl status cron
which php
确保:
storage 可写schedule:work(开发环境).env 控制是否启用调度如果你愿意,可以告诉我:
www-data / 普通用户我可以给你一份可直接复制的配置文件。