宝塔面板安装swoole扩展需严格匹配php版本,并分别配置cli与fpm的php.ini:先确认php子目录(如80),软件商店无对应swoole时须源码编译,configure必须加--enable-openssl和--enable-http2,且两个php.ini均需添加extension=swoole.so并重启服务,验证用php --ri swoole检查enabled及版本。

swoole 扩展不是装上就完事的——它必须和当前 PHP 版本严格匹配,且 CLI 和 FPM 两套运行环境要分别确认加载,否则会出现「命令行能跑,网页报错 Class not found」这种典型问题。
宝塔面板里点几下就能装?看 PHP 版本再决定
宝塔软件商店里显示的 swoole 扩展,只对部分 PHP 版本(如 php80、php81)提供预编译包,PHP 7.4 及更老版本基本不更新,PHP 8.2+ 则可能压根没上架。别盲目点「安装」,先执行:
/www/server/php/80/bin/php -v确认你用的是哪个 PHP 子目录(比如
80、81),再进「软件商店 → 对应 PHP 设置 → 安装扩展」搜 swoole。如果列表为空,直接跳过这步,走源码编译。
源码编译时 configure 参数不能漏 openssl 和 http2
默认 ./configure 不启用加密和 HTTP/2 支持,但实际项目中 WebSocket、HTTPS 服务、gRPC 等场景全依赖它们。漏掉会导致运行时报错:Call to undefined function swoole_http_server() 或连接被拒绝。正确写法是:
/www/server/php/80/bin/phpize./configure --with-php-config=/www/server/php/80/bin/php-config --enable-openssl --enable-http2make && make install
注意:如果用的是 CentOS/RHEL,提前装好 openssl-devel;Ubuntu/Debian 则要 libssl-dev,否则 configure 会静默跳过 --enable-openssl,你以为开了,其实没开。
extension=swoole.so 必须写进两个 php.ini
宝塔中 PHP-FPM 和 CLI 使用的是不同配置文件:
– FPM 配置路径:/www/server/php/80/etc/php.ini
– CLI 配置路径:/www/server/php/80/bin/php.ini
只改其中一个,就会出现「php -m | grep swoole 能看到,但 Web 页面 new Swoole\Http\Server 报错」。务必两边都加:
extension=swoole.so
加完后分别重启:
– FPM:在宝塔面板点「重启」或执行 bt restart php80
– CLI 不需要重启,但可运行 /www/server/php/80/bin/php --ri swoole 单独验证
验证时别只看 php -m,要查 --ri 输出里的 enabled 和 version
php -m | grep swoole 只说明模块名在列表里,不代表真正加载成功。真正可靠的验证命令是:
/www/server/php/80/bin/php --ri swoole
输出里必须同时满足:
– 有 Version => 5.1.5(或你装的版本)
– 有 enabled 字样(不是 disabled)
– 若启用了 openssl,应看到 openssl => enabled
– 若启用了 http2,应看到 http2 => enabled
缺任意一项,说明对应功能没生效,得回头检查 configure 参数或依赖库是否装全。
php-dev 或 php-config),导致 phpize 报错「Cannot find config.m4」——此时得先确认 /www/server/php/80/bin/php-config 文件是否存在,不存在就得重装该 PHP 版本或手动补全开发包。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











