必须正确加载Swoole扩展:先确认PHP≥7.2、安装php-dev/php-devel、启用OpenSSL;再通过PECL(pecl install swoole)或源码编译(phpize→configure→make→install)安装;最后在CLI对应的php.ini中添加extension=swoole或extension=swoole.so,重启服务并用php -m和php -r验证。

要在PHP项目中启用高性能异步服务,必须让Swoole扩展正确加载到PHP运行环境中,否则所有协程、WebSocket、TCP服务器代码都会报错“Class 'Swoole\Http\Server' not found”或直接提示扩展未启用。
确认PHP环境与依赖
执行 php -v 确保版本 ≥ 7.2;若低于该版本,Swoole 4.8+ 将无法编译通过。这一步跳过会导致后续 configure 失败并报错 “unsupported PHP version”。
运行 which phpize 查看 phpize 路径;若命令不存在,需安装 php-dev(Ubuntu/Debian)或 php-devel(CentOS/RHEL)。【缺少 phpize 会导致 phpize 命令未找到,整个编译流程中断】
检查 OpenSSL 是否可用:php -r "echo extension_loaded('openssl') ? 'yes' : 'no';"。Swoole 的 HTTPS、HTTP/2、WebSocket wss 功能强依赖 OpenSSL,未启用时这些协议将静默降级或连接失败。
安装Swoole扩展(两种主流方式)
方法一:PECL一键安装(推荐新手)
执行 pecl install swoole,过程中按回车接受默认配置。PECL会自动下载、编译、安装,并提示你将 extension=swoole 写入 php.ini —— 注意它写的是简名,不是 swoole.so,这是PECL 2.0+ 的新行为,兼容性更好。
Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
方法二:源码编译(适合定制或调试)
① 克隆最新稳定版:git clone https://github.com/swoole/swoole-src.git && cd swoole-src
② 执行 phpize(必须在源码根目录下运行)
③ 配置编译选项:./configure --enable-openssl --enable-http2;若跳过 --enable-openssl,后续启用 HTTPS 服务会抛出 SSL operation failed
④ 编译安装:make -j$(nproc) && sudo make install
启用扩展并验证
找到当前 PHP CLI 使用的 php.ini 文件:php --ini | grep "Loaded Configuration File"。不要修改 web 服务器(如 Apache/Nginx)用的 php.ini,CLI 和 FPM 配置文件常不同。
在该 php.ini 末尾添加一行:extension=swoole(PECL 安装)或 extension=swoole.so(源码编译安装)。【写错文件路径或写进错误的 php.ini 会导致 php -m 看不到 swoole】
重启 PHP-FPM 或 Web 服务器(如 sudo systemctl restart php*-fpm),然后运行:php -m | grep swoole。输出 swoole 即表示加载成功。
最后执行验证脚本:php -r "echo Swoole\VERSION;"。能打印出类似 4.11.2 的版本号,说明环境已就绪,可进入下一步开发。

















