Linux 稳定常驻启动 PHP 队列,服务器重启自动恢复

Linux 稳定常驻启动 PHP 队列(Supervisor 守护,服务器重启自动恢复)

前置准备(必做,否则队列报错 / 中文乱码 / 无法运行)

1. 安装 Redis(你用队列必须)

软件商店搜索 Redis 安装,同时给对应 PHP 版本装上redis 扩展

安装Redis

  1. 解除 PHP 禁用函数(队列依赖 pcntl 系列)

软件→对应 PHP 版本→设置→禁用函数

删除以下函数:

proc_open、pcntl_signal、pcntl_signal_dispatch、pcntl_fork、pcntl_wait、pcntl_alarm

  1. 设置 PHP 命令行版本(统一 CLI 与 PHP)

网站→你的站点→设置→PHP 命令行版本,选择和网站一致的 PHP(如 7.2/7.4)

设置PHP CLI版本

  1. 安装 Supervisor 进程守护(核心,防止关闭终端队列停止)

软件商店搜索 Supervisor管理器 一键安装

安装Supervisor

一、添加队列守护进程(图形化操作)

打开 Supervisor 管理器 → 点击【添加守护进程】

添加守护进程按钮

填写参数(适配你的 AI 文章队列,单任务最长 20 分钟)

名称:ai_article_queue(英文,不能中文)

启动用户:权限正常

运行目录:选择你的项目根目录

启动命令(直接复制):

powershell 复制代码
plaintext
php think queue:work --daemon --timeout=1200 --tries=1 --queue article**

参数说明:

--daemon 后台常驻

--timeout=1200 单任务最大 20 分钟(适配豆包慢接口)

--tries=1 失败不重复重试,避免卡死

--queue article 指定文章队列名

进程数量:1(并发不够可改为 2~4)

填写队列参数

点击确定,回到列表,点击【启动】,状态变为RUNNING即成功

运行成功状态

二、常用队列管理操作

  1. 重启队列(修改 Job 代码后必须执行)
    Supervisor 页面点击对应进程【重启】
    命令行方式:
    bash
    运行

进入项目目录

php think queue:restart

  1. 停止队列

页面点【停止】或命令:

powershell 复制代码
bash
运行
php think queue:stop
  1. 手动测试队列(终端临时跑,关闭窗口失效)
    bash
powershell 复制代码
运行
cd /目录
php think queue:work --timeout=1200 --queue article
  1. 查看队列运行日志(排查报错)
    Supervisor 对应进程右侧【日志】按钮,可看 CLI 输出、会员拦截、Token 扣费日志
    三、简易临时方案(不推荐长期用,重启服务器失效)
    如果临时测试,用 nohup 后台挂起,关闭面板终端不停止:
powershell 复制代码
bash
运行
cd /目录
nohup php think queue:work --daemon --timeout=1200 --tries=1 --queue article > queue.log 2>&1 &

弊端:服务器重启、进程崩溃不会自动重启,生产必须用 Supervisor

四、配套你现有业务的注意点

若出现中文乱码,在fire()第一行加:

powershell 复制代码
php
运行
ob_implicit_flush(true);
putenv('LANG=en_US.UTF-8');
相关推荐
GeW21 小时前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx1 天前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位1 天前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
对象存储与RustFS1 天前
网盘限速逼你开会员?用 RustFS 自己搭一个不限速的“私人网盘
服务器·后端·docker
骑着蜗牛撵大象3271 天前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
..Dauntless..1 天前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划1 天前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
QMCY_jason1 天前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特1 天前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A1 天前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络