在 Debian 系统中使用 Laravel 设置定时任务,核心是利用 Linux 的 cron + Laravel 的 Task Scheduling。下面按步骤说明。
app/Console/Kernel.phpprotected function schedule(Schedule $schedule)
{
// 每分钟执行一次
$schedule->command('inspire')->everyMinute();
// 每天凌晨执行
$schedule->command('backup:run')->daily();
// 自定义命令
$schedule->call(function () {
// 写日志或业务逻辑
})->hourly();
}
常见频率方法:
everyMinute()everyFiveMinutes()hourly()daily()weekly()monthly()crontab -e
如果是 www-data(推荐用于 Web 项目):
sudo crontab -u www-data -e
* * * * * cd /var/www/laravel && php artisan schedule:run >> /dev/null 2>&1
说明:
* * * * *:每分钟触发一次cd /var/www/laravel:你的 Laravel 项目路径php artisan schedule:run:Laravel 调度器php -v
which php
sudo chown -R www-data:www-data /var/www/laravel
sudo chmod -R 755 /var/www/laravel/storage
在 .env 中:
APP_TIMEZONE=Asia/Shanghai
php artisan schedule:run
sudo tail -f /var/log/syslog | grep CRON
❌ 任务不执行
✅ 检查:
systemctl status cron❌ 时间不对
✅ 检查服务器时区:
timedatectl
如果你愿意,我可以: