安装Swoole 4需先装build-essential、php8.1-dev、libssl-dev等依赖;再下载v4.8.15源码,用phpize8.1和--with-php-config=/usr/bin/php-config8.1配置,启用openssl/http2/coroutine/async-redis后编译安装;最后在对应php.ini中添加extension=swoole.so或通过phpenmod启用,并用php -m验证。

在 Ubuntu 上编译安装 Swoole 4,核心是确保 PHP 开发环境就绪、源码配置匹配当前 PHP 版本、扩展正确注册并启用。整个过程不依赖包管理器自动处理路径和版本,适合多 PHP 版本共存或需启用特定特性(如 OpenSSL、HTTP/2、协程 Redis)的场景。
确认并安装必要依赖
编译前必须装齐底层工具链和 PHP 开发头文件:
- 运行 sudo apt update 更新软件源
- 安装基础构建工具:sudo apt install -y build-essential autoconf automake
- 安装对应 PHP 版本的 dev 包(例如 PHP 8.1):sudo apt install -y php8.1-dev(请将
8.1替换为你实际使用的 PHP 版本号) - 若需 HTTPS、HTTP/2 或 Redis 协程支持,额外安装:sudo apt install -y libssl-dev libnghttp2-dev libhiredis-dev
下载并解压 Swoole 4 源码
推荐使用稳定版 tarball(避免 master 分支可能引入不稳定变更):
- 执行:wget https://github.com/swoole/swoole-src/archive/v4.8.15.tar.gz(Swoole 4 最新稳定版,截至 2026 年仍广泛兼容 PHP 7.4–8.2)
- 解压:tar zxvf v4.8.15.tar.gz && cd swoole-src-4.8.15
生成配置并编译安装
关键在于明确指定 PHP 配置工具路径,避免多版本冲突:
- 运行 phpize8.1(或你实际的版本命令,如
phpize8.0;可通过ls /usr/bin/phpize*查看可用命令) - 执行配置命令,注意
--with-php-config必须指向对应版本的php-config:
./configure --with-php-config=/usr/bin/php-config8.1 --enable-openssl --enable-http2 --enable-sockets --enable-coroutine --enable-async-redis - 编译并安装:make -j$(nproc) && sudo make install
成功后会输出类似 Installing shared extensions: /usr/lib/php/20210902/ 的路径,记下该目录(即扩展所在位置)。
启用扩展并验证
Ubuntu 中 CLI 和 FPM 使用不同 php.ini,需分别配置:
- 查找配置文件位置:php --ini(显示 CLI 加载的 ini)和 php-fpm -t && echo "FPM config:" && grep "php\.ini" /etc/php/*/fpm/php.ini
- 在两个 php.ini 文件末尾添加:extension=swoole.so
- 若使用 mods-available 机制(常见于较新 Ubuntu),可创建
/etc/php/8.1/mods-available/swoole.ini,内容为:; priority=20<br>extension=swoole.so
再执行:sudo phpenmod -v 8.1 swoole - 重启服务:sudo systemctl restart php8.1-fpm(如用 FPM);CLI 无需重启
- 验证:php -m | grep swoole 或 php --ri swoole —— 显示版本信息即成功


















