php 8.3 必须搭配 swoole 5.1.x(如 5.1.1),使用 sudo pecl install swoole 安装,确保 php-config --version 与 php -v 主版本一致(均为 8.3),fpm 模式需手动添加 extension=swoole 至 /etc/php/8.3/fpm/conf.d/20-swoole.ini,并调用 swoole\runtime::enablecoroutine() 启用协程。

在 Ubuntu 24.04 上为 PHP 8.3 安装 Swoole 扩展,关键在于版本严格匹配(PHP 8.3 + Swoole 5.1.x)、依赖准备充分、安装路径与配置文件不混淆。以下步骤已适配当前环境(2026年),可直接执行。
确认 PHP 8.3 已正确安装
先验证 PHP 主版本和开发工具是否就位:
- 运行
php -v确保输出为PHP 8.3.x(如 8.3.12) - 运行
php-config --version,结果必须与php -v的主版本号完全一致(即都是8.3)——这是 pecl 安装能否成功的核心依据 - 若提示命令未找到,说明缺少开发包:执行
sudo apt install php8.3-dev(Ubuntu 24.04 中包名已统一为php8.3-dev,不是php-dev)
安装 Swoole 5.1.x(唯一兼容 PHP 8.3 的版本)
使用 pecl 是最稳妥的方式,它会自动调用正确的 phpize 和 php-config:
- 执行
sudo pecl install swoole - 过程中会询问是否启用 OpenSSL、HTTP/2、cURL 等特性,按回车接受默认即可;如需 HTTPS/WSS 支持,建议输入
yes开启 OpenSSL - 安装成功后,pecl 通常会自动将
extension=swoole写入 CLI 模式的配置目录(如/etc/php/8.3/cli/conf.d/20-swoole.ini)
手动补全 FPM 模式配置
pecl 默认不处理 FPM 配置,而 Web 服务(Nginx/Apache + PHP-FPM)依赖此模式:
- 检查 FPM 配置目录是否存在 Swoole 配置:
ls /etc/php/8.3/fpm/conf.d/ | grep swoole - 若无输出,手动创建:
echo "extension=swoole" | sudo tee /etc/php/8.3/fpm/conf.d/20-swoole.ini -
注意:这里写
extension=swoole(非swoole.so),因 pecl 2.0+ 使用简名机制,兼容性更好
启用协程并验证
Swoole 5.x 默认不开启协程 Hook,必须显式调用才能使用 co::sleep 等协程 API:
- 在 PHP 脚本开头或框架启动处添加:
Swoole\Runtime::enableCoroutine(); - 验证扩展是否加载:
php -m | grep swoole(CLI 模式) - 验证 FPM 是否生效:
sudo systemctl restart php8.3-fpm && php-fpm8.3 -t,再检查phpinfo()页面中是否有 Swoole 模块信息 - 若出现
Module 'swoole' already loaded警告,说明有重复 extension 行,检查所有conf.d/*.ini文件并去重
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











