应优先通过宝塔软件商店安装swoole扩展;若无对应版本,再手动编译,需严格匹配php路径、双php.ini配置、启用--enable-openssl和--enable-http2参数,并验证swoole.so实际存在。

先查宝塔软件商店有没有现成包
别急着开终端敲命令。登录宝塔面板 →「软件商店」→ 找到你正在用的 PHP 版本(比如 PHP 80)→ 点「设置」→ 切换到「安装扩展」标签页 → 搜索 swoole。如果列表里有 Swoole 4.x 或 5.x,直接点安装,再点「重启 PHP」(注意是「重启」,不是「重载」)。这一步能省掉 90% 的编译风险。
/www/server/php/80/bin/phpize 路径必须写对
如果商店没选项,才走源码编译。第一步就容易错:phpize 必须用你实际 PHP 版本对应的路径,不能只写 phpize 或 phpize-8.0。CentOS 7.9 下宝塔默认路径是:/www/server/php/80/bin/phpize。执行前先确认:/www/server/php/80/bin/php -v 输出确实是 8.0.x。路径错一个字符,make install 就会把 swoole.so 装进错误目录,后续加 extension=swoole.so 也白搭。
./configure 必须带 --enable-openssl 和 --enable-http2
这两个参数不是可选的,漏掉会导致关键功能失效:
-
swoole_http_server、Swoole\Http\Server直接报Call to undefined function - WebSocket over HTTPS、HTTP/2 客户端连接被拒绝
- gRPC 支持完全不可用
正确命令示例:./configure --with-php-config=/www/server/php/80/bin/php-config --enable-openssl --enable-http2。注意 --with-php-config 后面必须是完整路径,不能简写。
两个 php.ini 都得加 extension=swoole.so
宝塔下 PHP CLI 和 PHP-FPM 加载的是两套独立配置文件:
- FPM 用:
/www/server/php/80/etc/php.ini - CLI 用:
/www/server/php/80/bin/php.ini
只改其中一个,php --ri swoole 就会报 not found。两个文件末尾都加:extension=swoole.so。加完后必须在宝塔面板里点「重启 PHP」服务;CLI 不需重启,但可用 /www/server/php/80/bin/php --ri swoole 单独验证。
最常被忽略的是:编译成功后输出的扩展路径(比如 /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/)要和 php.ini 里写的 swoole.so 实际位置对得上。哪怕只差一个字母,PHP 就加载失败。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











