应优先通过宝塔软件商店一键安装Swoole扩展;若商店无对应版本,再手动编译,需严格匹配PHP路径、配置php.ini双文件、启用--enable-openssl和--enable-http2参数,并通过独立配置文件实现环境变量动态管理。

在宝塔面板中为PHP应用启用Swoole扩展并实现配置中心动态管理,需先完成扩展安装,再通过独立配置文件解耦环境变量与业务逻辑,避免硬编码导致多环境部署失败。
宝塔软件商店一键安装Swoole(推荐首选)
适用于PHP 8.0/8.1且宝塔软件商店已上架对应Swoole版本的场景,全程图形化操作,5分钟内完成。
登录宝塔面板 → 左侧「软件商店」→ 在「已安装」列表中找到目标PHP版本(如PHP 80)→ 点击右侧「设置」按钮。
切换至「安装扩展」选项卡 → 在搜索框输入 【swoole】 → 若显示“Swoole5”或“Swoole4”等可安装项,点击右侧「安装」。
安装完成后务必点击「重启PHP」(不是重载),否则扩展不生效。
验证是否成功:在终端执行 /www/server/php/80/bin/php --ri swoole,输出含 enabled 和版本号即为正常。
源码编译安装(适配指定版本或启用加密特性)
当需要 Swoole 5.1.5 并启用 OpenSSL 支持,或软件商店无对应PHP版本扩展时必须使用此法。
第一步:SSH登录服务器,安装基础编译工具
CentOS系执行:yum install -y gcc gcc-c++ make autoconf
Ubuntu/Debian系执行:apt-get install -y gcc g++ make autoconf
第二步:进入PHP安装根目录并下载源码cd /www/server && wget https://pecl.php.net/get/swoole-5.1.5.tgz
第三步:解压并进入源码目录tar -zxvf swoole-5.1.5.tgz && cd swoole-5.1.5
Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
第四步:调用对应PHP版本的phpize工具
【必须使用 /www/server/php/80/bin/phpize,不能用系统默认phpize】
第五步:配置编译参数,关键是要指向正确的php-config路径./configure --with-php-config=/www/server/php/80/bin/php-config --enable-openssl
第六步:编译安装make && make install
成功后会提示扩展存放路径,例如:/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/,确认该目录下存在 swoole.so 文件。
启用Swoole扩展并分离配置中心
编译安装只生成.so文件,不自动加载;而配置中心的核心是把数据库地址、Redis密码等敏感项从代码中剥离,由外部统一注入。
编辑主php.ini文件:vi /www/server/php/80/etc/php.ini,在文件末尾新增一行:extension=swoole.so
同时编辑CLI专用配置(防止命令行可用但Web不可用):vi /www/server/php/80/etc/php-cli.ini,同样追加 extension=swoole.so。
创建独立配置中心文件:touch /www/wwwroot/your-site/config/swoole_config.php,内容示例:<?php return [ 'server_host' => $_ENV['SWOOLE_HOST'] ?: '0.0.0.0', 'server_port' => (int)($_ENV['SWOOLE_PORT'] ?: 9502), 'redis_host' => $_ENV['REDIS_HOST'], 'redis_auth' => $_ENV['REDIS_AUTH'] ?: '' ];
在Swoole服务启动脚本中引入该配置:
$config = require '/www/wwwroot/your-site/config/swoole_config.php';<br>$server = new Swoole\WebSocket\Server($config['server_host'], $config['server_port']);
通过宝塔「网站」→「设置」→「环境变量」功能,为站点添加以下变量:
SWOOLE_HOST=127.0.0.1<br>SWOOLE_PORT=9502<br>REDIS_HOST=127.0.0.1<br>REDIS_AUTH=your_password
最后重启PHP服务:bt restart php,再执行 /www/server/php/80/bin/php --ri swoole 确认状态,运行服务脚本验证配置是否被正确读取。

















