必须手动配置缓存路径、启用Loader并验证生效,否则Swoole扩展形同虚设;需确认swoole已安装启用,下载匹配的swoole_loader80.so,分别在FPM和CLI的php.ini中添加extension=swoole_loader80.so,禁用opcache,重启PHP后用php -m和php --ri swoole_loader验证。

宝塔面板安装Swoole扩展后,PHP脚本仍按默认方式逐行解析执行,无法利用Swoole Loader对加密或编译后PHP文件的高速加载能力,导致应用启动慢、重复加载开销大。必须手动配置缓存路径、启用Loader并验证生效,否则Swoole扩展形同虚设。
确认Swoole扩展已正确启用
登录宝塔面板 → 进入「软件商店」→ 找到当前站点所用PHP版本(如PHP 80)→ 点击「设置」→ 切换至「安装扩展」标签页 → 查看「swoole」状态是否为「已安装」且右侧显示绿色对勾。若未安装,请先完成安装并点击「重启PHP」;若已安装但无对勾,说明扩展未被PHP识别,跳过后续所有步骤,先解决扩展加载失败问题。
在终端中执行:/www/server/php/80/bin/php --ri swoole。若返回包含“swoole support => enabled”及版本号的完整信息,则扩展加载成功;若提示“Extension 'swoole' not found”,说明php.ini未正确配置或两个配置文件(FPM与CLI)只改了一个。
下载并上传匹配的Swoole Loader扩展文件
方法一:根据PHP版本与架构精准下载
打开终端,执行:uname -m && /www/server/php/80/bin/php -v。确认返回为x86_64且PHP版本为8.0.x后,前往官方可信源下载swoole_loader80.so(非.dll、非.zip、非.tar.gz,是单一.so文件)。【必须严格匹配PHP主版本号和系统架构,错一个字符将导致PHP启动失败】
方法二:直接上传至扩展目录
在宝塔「文件」管理器中,定位到:/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/。将下载好的swoole_loader80.so拖入该目录。不要重命名,不要放入子文件夹,不要解压——它必须是独立存在的.so文件。
Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
修改PHP配置启用Loader缓存
第一步:编辑FPM主配置文件
在宝塔中打开:/www/server/php/80/etc/php.ini,拉到文件最底部,另起一行,输入:extension=swoole_loader80.so。保存。
第二步:同步修改CLI配置文件
同样在宝塔中打开:/www/server/php/80/bin/php.ini,也在末尾添加相同行:extension=swoole_loader80.so。这一步极易遗漏,不加会导致命令行执行PHP时无法加载Loader,而Web请求却正常,造成调试混乱。
第三步:禁用可能冲突的扩展
在同一份/www/server/php/80/etc/php.ini中,搜索opcache,找到opcache.enable=1这一行,将其改为opcache.enable=0。Swoole Loader与OPcache存在底层机制冲突,同时启用会导致PHP进程随机崩溃或502错误。
重启服务并验证缓存生效
回到宝塔面板 → PHP 80设置页 → 点击「服务」→ 选择「重启」(不是「重载配置」)。等待状态变为绿色「运行中」。
重启完成后,在终端执行:/www/server/php/80/bin/php -m | grep swoole_loader。若输出swoole_loader,说明Loader已加载;再执行:/www/server/php/80/bin/php --ri swoole_loader,若返回含“loader support => enabled”的信息,则缓存加速模块正式就位。

















