Skip to content

概述

EBAOZU V4 基于 ThinkPHP 8.0 与 Swoole 4 运行常驻内存服务。在修改了 PHP 业务代码(非热更新模式)、配置文件(.env / config/)或安装了新扩展后,必须重启 Swoole 服务使改动生效。

生产环境重启方式(推荐)

在生产环境中,Swoole 通常由 Supervisor(堡塔进程守护) 管理,推荐通过守护进程管理器执行重启:

宝塔面板图形化操作

  1. 进入宝塔面板 -> 【软件商店】 -> 打开【Supervisor管理器】。
  2. 找到 EBAOZU 对应的守护进程(如 ebaozu_v4)。
  3. 点击操作栏的【重启】按钮。
  4. 观察状态是否保持为【运行中(RUNNING)】,并查看日志确认无启动报错。

命令行 Supervisor 重启

bash
supervisorctl restart ebaozu_v4
supervisorctl restart all
# 查看状态
supervisorctl status

本地开发与调试模式操作

在开发或无守护进程的环境中,可直接使用 ThinkPHP 命令行工具启动 Swoole 服务:

bash
# 进入项目根目录
cd /www/wwwroot/your-project

# 启动服务(前台运行,可直接查看输出报错)
php think swoole

注意命令集范围:本版 think-swoole(v4.0.10)只注册了 swoole(启动服务)与 swoole:rpc-interface 两个命令,不存在 php think swoole reloadphp think swoole stopphp think swoole restart 子命令;执行这类命令会因命令不接受多余参数而直接报错。停止与重载请使用下面的方式:

bash
# 查看主进程 PID(Swoole 常驻进程的主进程)
ps -ef | grep "[p]hp .*think swoole"

# 平滑重载 Worker(仅重载业务代码,不断开端口监听):向主进程发送 SIGUSR1
# 该信号即框架内置热更新所用的重载方式
kill -USR1 <主进程PID>

# 停止服务:向主进程发送 SIGTERM
kill -TERM <主进程PID>

异常排查:端口占用与僵尸进程清理

若执行重启后提示端口被占用(如 bind() failed: Address already in use)或服务未能正常启动:

  1. 查找占用端口的残留进程(以默认端口 20697 为例):

    bash
    lsof -i :20697
    # 或
    netstat -tlpn | grep 20697
  2. 强制清理残留进程

    bash
    pkill -9 -f "php think swoole"
  3. 重新在 Supervisor 或命令行启动服务

    bash
    supervisorctl restart ebaozu_v4

承信租多门店租赁商城系统官方文档