温馨提示×

如何给debian配laravel队列

小樊
41
2026-09-14 10:08:20
栏目: 智能运维

下面按**“从零到可用”**的方式,说明如何在 Debian 上配置 Laravel 队列(Queue)。以最常见的 Redis 队列 + Supervisor 守护进程 为例(生产环境推荐)。


一、环境准备

1. 安装必要软件

sudo apt update
sudo apt install -y php php-cli php-redis redis-server supervisor

根据你的 PHP 版本可能要安装 php8.2-redis 等

启动 Redis:

sudo systemctl enable redis-server
sudo systemctl start redis-server

二、Laravel 队列配置

2. 修改 .env

QUEUE_CONNECTION=redis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

3. 创建队列任务(示例)

php artisan make:job ExampleJob

编辑 app/Jobs/ExampleJob.php:

public function handle()
{
    // 队列逻辑
}

4. 测试队列

php artisan queue:work

如果可以正常消费任务,说明配置成功。


三、使用 Supervisor 守护队列(关键)

5. 安装 Supervisor(已装可跳过)

sudo apt install supervisor

6. 创建 Supervisor 配置

sudo nano /etc/supervisor/conf.d/laravel-worker.conf

示例配置(注意路径):

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/your-project/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/your-project/storage/logs/worker.log

numprocs=2 表示 2 个队列进程

7. 启动 Supervisor

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*

查看状态:

sudo supervisorctl status

四、常用命令

# 重启队列
sudo supervisorctl restart laravel-worker:*

# 失败任务表
php artisan queue:failed

# 重试失败任务
php artisan queue:retry all

五、常见问题

Redis 连不上

redis-cli ping

返回 PONG 才算正常

权限问题

sudo chown -R www-data:www-data storage

六、可选方案(非必须)

  • 数据库队列:QUEUE_CONNECTION=database(需 php artisan queue:table)
  • Horizon(Redis 高级管理):适合中大型项目

如果你愿意,我可以:

  • 给你 Debian + Nginx + PHP-FPM 完整部署方案
  • 或针对 Docker / 云服务器 给配置

你现在的 Laravel 版本和 Debian 版本是多少?

0 踩