php --ri swoole 是最准最快查看 swoole 版本和编译参数的方式,输出版本号、启用特性(如 --enable-openssl)、协程状态及全部运行时配置;若提示“extension 'swoole' not found”,说明扩展未加载成功,需先排查安装。

php --ri swoole 能直接看到版本和编译参数
这是最准、最快的方式,不用进 php.ini 或查文件路径。它会输出 Swoole 的版本号、启用的特性(比如 --enable-openssl、--enable-http2)、协程状态、以及所有运行时配置项(如 swoole.enable_coroutine)。
执行命令:
php --ri swoole
如果提示 Extension 'swoole' not found,说明扩展根本没加载成功,先别看版本,得回头检查安装步骤。
php -m | grep swoole 只能确认是否加载,不显示版本
这个命令只告诉你 swoole 在不在已启用的扩展列表里,适合快速筛查。但它不会告诉你装的是 v4.10 还是 v5.1.4,也不会反映你启没启用协程。
常见误判场景:
- 你改了某个 PHP 版本的
php.ini,但当前 shell 激活的是另一个版本 ——php -m查的是当前激活版本,不是你刚编辑的那个 -
extension=swoole.so写对了,但swoole.so文件实际不存在于extension_dir指向的目录下(比如make install输出路径是no-debug-non-zts-20210902/,你却写成no-debug-zts-20210902/)
phpinfo() 里搜 swoole 能看到完整加载路径和 INI 文件位置
在 Web 环境(比如用 php-fpm 启动的 Nginx/Apache)下,CLI 命令可能和 Web 请求走的不是同一个 php.ini。这时候 phpinfo() 是唯一可信来源。
Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
新建一个 info.php:
<?php phpinfo(); ?>
浏览器访问后,搜索 swoole,你会看到:
-
Loaded Configuration File:当前 Web 请求实际读取的php.ini路径 -
extension_dir:Swoole 扩展文件必须放在这个目录下 -
version字段:和php --ri swoole一致,但这里还能看出是否被禁用(比如disable_functions里写了swoole_*)
代码里用 SWOOLE_VERSION 常量要小心作用域
这个常量只在扩展加载成功后才存在,不能在 extension=swoole.so 之前使用,也不能在 if (extension_loaded('swoole')) { ... } 外部直接引用。
安全写法:
<?php if (extension_loaded('swoole')) {
echo SWOOLE_VERSION;
} else {
echo 'swoole not loaded';
}
?>
注意:SWOOLE_VERSION 是字符串,不是函数,不带括号;它只反映编译时的版本号,不体现运行时是否开启协程等动态配置。
php --ri swoole,不代表网页里 phpinfo() 也能看到。必须分别验证。










