温馨提示×

laravel定时任务debian咋设

小樊
56
2026-10-11 04:06:39
栏目: 智能运维

在 Debian 上配置 Laravel 定时任务(Task Scheduling),核心就是:用 cron 每分钟调用 Laravel 的 schedule。

下面一步一步来:


一、Laravel 侧配置

1. 定义任务

在 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();
}

二、Debian 上配置 cron

2. 编辑 cron(www-data 或当前用户)

推荐用 项目所属用户(如 www-data 或部署用户):

crontab -e

如果是 www-data(无登录 shell):

sudo crontab -u www-data -e

3. 加入 Laravel scheduler

* * * * * cd /var/www/your-project && php artisan schedule:run >> /dev/null 2>&1

✅ 说明:

  • * * * * *:每分钟
  • cd 到项目目录(必须)
  • php artisan schedule:run 触发 Laravel 任务

三、确认环境

4. 检查 PHP 路径(重要)

如果 php 不在 PATH:

which php
# 例如 /usr/bin/php

改成:

* * * * * cd /var/www/your-project && /usr/bin/php artisan schedule:run >> /dev/null 2>&1

四、常见坑

❌ 权限问题

  • storage/ 必须可写
  • cron 用户要能访问项目

❌ 时区不对

Laravel:

APP_TIMEZONE=Asia/Shanghai

❌ 日志没反应

测试:

php artisan schedule:run

五、查看 cron 是否运行

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

如果你愿意,可以告诉我:

  • Laravel 版本
  • Debian 版本
  • 用的是 www-data 还是 deploy 用户

我可以给你 精确可复制的配置。

0 踩