温馨提示×

debian中laravel队列怎设

小樊
41
2026-09-17 10:32:45
栏目: 智能运维

在 Debian 下配置 Laravel 队列,一般包含 安装环境 → 配置队列 → 启动队列进程 → 设置开机自启 几个步骤。下面以 Redis 队列 + Supervisor 守护进程 为例(最常用、最稳)。


一、前置条件

1. 安装 PHP 及扩展

sudo apt update
sudo apt install php php-cli php-mbstring php-xml php-curl php-zip php-mysql php-redis

2. 安装 Redis

sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server

3. 安装 Composer(如已有可跳过)

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

二、Laravel 队列配置

1. 修改 .env

QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

2. 生成队列配置文件(可选)

php artisan queue:table
php artisan migrate

3. 测试队列

php artisan make:job TestJob
php artisan queue:work

三、使用 Supervisor 守护队列(推荐)

1. 安装 Supervisor

sudo apt install supervisor

2. 创建配置文件

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

3. 生效配置

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

查看状态:

sudo supervisorctl status

四、开机自启

Supervisor 本身会开机启动:

sudo systemctl enable supervisor

五、常用命令

php artisan queue:work redis
php artisan queue:restart
php artisan queue:failed
php artisan queue:retry all

六、常见问题

1. 队列不执行

  • 检查 QUEUE_CONNECTION
  • 检查 Redis 是否启动
  • 查看 storage/logs/worker.log

2. 代码更新不生效

php artisan queue:restart

3. 多队列

php artisan queue:work redis --queue=high,default

如果你用的是 数据库队列 / Beanstalkd / systemd 方式,或者 Debian 版本不同,可以告诉我,我可以给你对应方案。

0