Appearance
问题说明
在部署或启动 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 扩展目录
- 执行以下命令获取当前 PHP 的扩展存放目录:bash例如输出为
php -i | grep extension_dir/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930。 - 将
swoole_loader80.so复制到该目录下:bashcp swoole_loader80.so /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/swoole_loader.so - 检查文件权限,确保为
755且所有者为root或www:bashchmod 755 /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/swoole_loader.so
在 php.ini 中引入扩展
- 打开 PHP 8.0 的配置文件
php.ini(如/www/server/php/80/etc/php.ini)。 - 在文件末尾添加一行:ini
extension = swoole_loader.so - 保存配置文件。
重启 PHP 服务与验证
- 重启 PHP-FPM 服务(宝塔面板 -> 软件商店 -> PHP-8.0 -> 重启服务)。
- 执行验证命令:bash
php --ri swoole_loader - 扩展成功加载后,重新启动 Swoole 守护进程即可。
注意事项
- CLI 版本一致性:若命令行运行
php -v显示的版本与宝塔站点 PHP 版本不同,请在宝塔面板【网站】->【PHP CLI 版本】中将全局 CLI 版本切换为 PHP-8.0。 - 架构支持:
swoole_loader目前仅支持 x86_64(AMD64)架构,ARM 架构服务器(如部分鲲鹏/M1等)可能无法加载该二进制扩展。