在 Debian 上配置 Laravel 定时任务(Task Scheduling),核心就是:用 cron 每分钟调用 Laravel 的 schedule。
下面一步一步来:
在 routes/console.php 或 app/Console/Kernel.php 里:
// routes/console.php
use Illuminate\Support\Facades\Schedule;
Schedule::command('inspire')->everyMinute();
或(老版本):
// app/Console/Kernel.php
protected function schedule($schedule)
{
$schedule->command('inspire')->everyMinute();
}
推荐用 项目所属用户(如 www-data 或部署用户):
crontab -e
如果是 www-data(无登录 shell):
sudo crontab -u www-data -e
* * * * * cd /var/www/your-project && php artisan schedule:run >> /dev/null 2>&1
✅ 说明:
* * * * *:每分钟cd 到项目目录(必须)php artisan schedule:run 触发 Laravel 任务如果 php 不在 PATH:
which php
# 例如 /usr/bin/php
改成:
* * * * * cd /var/www/your-project && /usr/bin/php artisan schedule:run >> /dev/null 2>&1
storage/ 必须可写Laravel:
APP_TIMEZONE=Asia/Shanghai
测试:
php artisan schedule:run
sudo systemctl status cron
没开就:
sudo systemctl enable cron
sudo systemctl start cron
* * * * * cd /var/www/laravel && /usr/bin/php artisan schedule:run >> /var/log/laravel-schedule.log 2>&1
如果你愿意,可以告诉我:
www-data 还是 deploy 用户我可以给你 精确可复制的配置。