温馨提示×

centos中laravel队列如何设

小樊
39
2026-10-02 21:37:12
栏目: 智能运维

在 CentOS 上部署 Laravel 队列,通常有以下几种方式,最常用的是 Supervisor 守护进程。下面按「从安装到可用」的顺序说明。


一、前提条件

  1. 已安装 PHP(含 php-artisan 可用)
  2. 已安装 Composer
  3. Laravel 项目可正常运行
  4. 队列驱动已配置(如 database / redis)

检查 .env:

QUEUE_CONNECTION=redis
# 或
QUEUE_CONNECTION=database

二、测试队列是否能跑

先手动执行(确认没问题):

php artisan queue:work

或(database 驱动需建表):

php artisan queue:table
php artisan migrate

三、安装 Supervisor(推荐 ✅)

1. 安装

yum install -y epel-release
yum install -y supervisor

2. 启动 Supervisor

systemctl enable supervisord
systemctl start supervisord

四、配置 Laravel 队列

1. 创建配置文件

vim /etc/supervisord.d/laravel_queue.ini

2. 示例配置(⚠按自己路径改)

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

numprocs=2 表示 2 个 worker
user 建议用 web 运行用户(nginx / apache / www)


五、重新加载 Supervisor

supervisorctl reread
supervisorctl update
supervisorctl start laravel_queue:*

查看状态:

supervisorctl status

六、常见其他启动方式(不推荐生产)

1. 后台运行(测试用)

nohup php artisan queue:work &

2. 系统服务(CentOS 7+)

可写 systemd 服务文件(比 Supervisor 麻烦)


七、常见问题

1. 代码更新不生效

php artisan queue:restart

2. 队列卡死

supervisorctl restart laravel_queue:*

3. 权限问题

确保 storage 可写:

chown -R nginx:nginx storage
chmod -R 755 storage

八、推荐生产方案 ✅

  • Redis + Supervisor
  • worker 数 = CPU 核数或稍多
  • 失败任务用 failed_jobs 表

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

  • Laravel 版本
  • 队列驱动(redis / database)
  • CentOS 版本

我可以给你完全定制的一份配置。

0 踩