温馨提示×

debian中laravel怎样设定时任务

小樊
44
2026-10-02 07:54:44
栏目: 智能运维

在 Debian 系统中使用 Laravel 设置定时任务,核心是利用 Linux 的 cron + Laravel 的 Task Scheduling。下面按步骤说明。


一、Laravel 中定义调度任务

1. 编辑 app/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
    // 每分钟执行一次
    $schedule->command('inspire')->everyMinute();

    // 每天凌晨执行
    $schedule->command('backup:run')->daily();

    // 自定义命令
    $schedule->call(function () {
        // 写日志或业务逻辑
    })->hourly();
}

常见频率方法:

  • everyMinute()
  • everyFiveMinutes()
  • hourly()
  • daily()
  • weekly()
  • monthly()

二、在 Debian 中配置 cron

1. 编辑当前用户的 crontab

crontab -e

如果是 www-data(推荐用于 Web 项目):

sudo crontab -u www-data -e

2. 添加 Laravel 调度入口

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

说明:

  • * * * * *:每分钟触发一次
  • cd /var/www/laravel:你的 Laravel 项目路径
  • php artisan schedule:run:Laravel 调度器

三、确保环境正确

1. PHP CLI 可用

php -v
which php

2. 文件权限

sudo chown -R www-data:www-data /var/www/laravel
sudo chmod -R 755 /var/www/laravel/storage

3. 时区设置(重要)

在 .env 中:

APP_TIMEZONE=Asia/Shanghai

四、验证是否生效

手动运行

php artisan schedule:run

查看 cron 日志

sudo tail -f /var/log/syslog | grep CRON

五、常见问题

❌ 任务不执行
✅ 检查:

  • cron 是否运行:systemctl status cron
  • php 路径是否正确
  • 用户是否有执行权限

❌ 时间不对
✅ 检查服务器时区:

timedatectl

如果你愿意,我可以:

  • 帮你写 具体 command 示例
  • 配置 supervisor + queue + cron
  • 针对 Docker / 生产环境 给方案

0 踩