在hyperf中启用swow需先确认php 8.0–8.3及x86_64/aarch64架构,安装编译依赖;再下载校验脚本自动编译swow.so并启用;最后修改server.php、引入hyperf/swow包并清缓存完成配置。

在Hyperf项目中快速启用Swow协程引擎,需绕过官方未提供的自动化配置,直接生成适配当前PHP版本与系统架构的Swow扩展编译环境。
确认PHP环境与依赖基础
执行 php -v 确保PHP版本为8.0–8.3(Swow 1.4+不兼容PHP 7.x),同时检查 php-config 命令是否可用——若缺失,需先安装 php-dev 或 php-devel 包。
运行 uname -m 查看架构:Swow预编译包仅支持 【x86_64 和 aarch64】,ARMv7或i386将无法使用一键脚本生成的二进制。
安装编译依赖:sudo apt install build-essential autoconf automake libtool pkg-config(Ubuntu/Debian)或 sudo yum groupinstall "Development Tools" && sudo yum install autoconf automake libtool pkgconfig(CentOS/RHEL)。
下载并执行Kimi AI生成的Swow环境配置脚本
从可信源获取脚本(例如:curl -o setup-swow.sh https://kimi.example.com/hyperf-swow-setup-v1.4.sh),【务必用 sha256sum 核对脚本哈希值,避免执行被篡改的远程脚本】。
赋予执行权限并运行:chmod +x setup-swow.sh && ./setup-swow.sh。
脚本将自动完成:检测PHP头文件路径→下载对应PHP版本的Swow源码→打补丁修复Hyperf 3.1+的Swoole兼容层冲突→编译生成 swow.so→写入 php.ini 启用扩展。整个过程无需人工干预,但耗时约3–7分钟,取决于服务器CPU性能。
验证Swow扩展是否生效
方法一:终端执行 php -m | grep swow,输出 swow 即表示加载成功。
方法二:创建临时验证文件 test-swow.php,内容为 <?php var_dump(extension_loaded('swow')); ?>,运行 php test-swow.php 返回 bool(true)。
方法三:进入Hyperf项目根目录,执行 php bin/hyperf.php start,启动日志中出现 Swow Engine initialized 且无 undefined symbol 报错,说明Swow已接管协程调度。
配置Hyperf使用Swow引擎
第一步:修改 config/autoload/server.php 中的 'type' 值为 SwowServer::class。
第二步:在 composer.json 的 require 区块添加 "hyperf/swow": "^3.1",然后执行 composer update hyperf/swow。
第三步:清理配置缓存:php bin/hyperf.php clear:config;重启服务后,php bin/hyperf.php server:watch 将基于Swow引擎热重载。











