Skip to content

问题说明

在部署或启动 EBAOZU 系统时,若遇到错误提示缺少 swoole_loader 扩展或扩展文件未找到,通常发生在需要加载加密扩展包的运行环境中。

提示:EBAOZU V4 后端核心采用 PHP 8.0+。请确认当前服务器 PHP 版本为 PHP 8.0(NTS 非线程安全版本),严禁混用 PHP 7.x 扩展。

检测扩展状态

在服务器命令行中执行以下命令,检测当前命令行 PHP 的扩展安装情况:

bash
php -v && php --ri swoole_loader
  • 未安装:输出 Extension 'swoole_loader' not present.
  • 已正确安装:输出 swoole_loader support => enabled 以及扩展版本信息。

解决步骤

获取对应版本的扩展文件

从源码包或发布包的 help/swoole_loader/(或扩展目录)中获取适用于 Linux 64位 PHP 8.0 NTS 的扩展文件:swoole_loader80.so

复制扩展文件到 PHP 扩展目录

  1. 执行以下命令获取当前 PHP 的扩展存放目录:
    bash
    php -i | grep extension_dir
    例如输出为 /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930
  2. swoole_loader80.so 复制到该目录下:
    bash
    cp swoole_loader80.so /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/swoole_loader.so
  3. 检查文件权限,确保为 755 且所有者为 rootwww
    bash
    chmod 755 /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/swoole_loader.so

在 php.ini 中引入扩展

  1. 打开 PHP 8.0 的配置文件 php.ini(如 /www/server/php/80/etc/php.ini)。
  2. 在文件末尾添加一行:
    ini
    extension = swoole_loader.so
  3. 保存配置文件。

重启 PHP 服务与验证

  1. 重启 PHP-FPM 服务(宝塔面板 -> 软件商店 -> PHP-8.0 -> 重启服务)。
  2. 执行验证命令:
    bash
    php --ri swoole_loader
  3. 扩展成功加载后,重新启动 Swoole 守护进程即可。

注意事项

  • CLI 版本一致性:若命令行运行 php -v 显示的版本与宝塔站点 PHP 版本不同,请在宝塔面板【网站】->【PHP CLI 版本】中将全局 CLI 版本切换为 PHP-8.0。
  • 架构支持swoole_loader 目前仅支持 x86_64(AMD64)架构,ARM 架构服务器(如部分鲲鹏/M1等)可能无法加载该二进制扩展。

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