必须通过命令行和运行时双重验证:执行/www/server/php/80/bin/php --ri swoole确认enabled及版本,php -m | grep swoole检查cli加载,php test_swoole.php验证类存在,web端需phpinfo()查看且重启php服务(非重载)才生效。

确认Swoole扩展是否真正生效,不能只看宝塔面板里显示“已安装”,必须通过命令行和运行时双重验证——否则PHP-FPM能加载、CLI却报错“Class not found”,或WebSocket服务启动失败都可能发生。
终端命令快速验证
登录服务器,执行以下命令:
php --ri swoole
如果输出中包含“swoole support => enabled”及版本号(如v4.8.11或v5.1.5),说明模块已注册成功;若提示“Extension 'swoole' not present”,则未加载或路径错误。
这一步必须在同一PHP版本路径下执行:比如你装的是PHP 80,就用/www/server/php/80/bin/php --ri swoole,别直接敲php,否则可能调用系统默认PHP(如PHP 7.4)导致误判。
检查PHP模块列表
运行命令:
php -m | grep swoole
有输出即表示swoole已进入扩展列表。但注意:该命令只反映CLI模式下的加载状态,不保证FPM也生效。
若无输出,先确认是否漏改了CLI专用的php.ini——它位于/www/server/php/80/bin/php.ini,和FPM用的/www/server/php/80/etc/php.ini是两个独立文件。
运行时功能验证
创建一个最小测试文件test_swoole.php,内容为:
Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
var_dump(class_exists('Swoole\Server'));
保存后执行:
/www/server/php/80/bin/php test_swoole.php
输出bool(true)才算真正可用。若为false,说明虽然扩展名加载了,但类未注册——常见于configure时漏加--enable-openssl参数,导致Swoole核心类无法初始化。
此时不要重装,先回退检查编译参数是否含--enable-openssl和--enable-http2,这两个是PHP 8.0+下Swoole类加载的硬性前提。
Web环境验证(可选)
在网站根目录新建info.php,写入:
浏览器访问该页面,搜索“swoole”。看到完整模块信息区块,且“swoole support”为enabled,才算Web请求层也打通。
注意:此步需重启PHP服务后才生效,仅重载配置无效。宝塔面板中点击对应PHP版本右侧的“重启”按钮,不是“重载”。










