零基础装Swoole 4核心三点:环境匹配(PHP≥7.1、phpize/php-config可用、Windows需核对TS/NTS与架构)、安装方式选对(Linux/macOS用pecl install swoole或源码编译,Windows必须下载匹配的php_swoole.dll)、验证不跳步(重启服务后执行php --ri swoole确认enabled及版本,或test.php检测extension_loaded)。

零基础装 Swoole 4,核心就三点:环境匹配、安装方式选对、验证不跳步。不用懂底层原理,按步骤操作,15 分钟内就能跑起第一个 TCP 服务。
确认 PHP 环境是否达标
Swoole 4 要求 PHP 版本 ≥ 7.1(推荐 7.4 或 8.0),且必须有 phpize 和 php-config 工具。Windows 用户还要注意 TS/NTS 和架构(x64/x86)是否匹配。
- 终端执行
php -v查看版本,低于 7.1 建议先升级 PHP - 执行
phpize -v和which php-config,若报错需安装开发包:Ubuntu/Debian 运行sudo apt-get install php-dev;CentOS/RHEL 运行sudo yum install php-devel - Windows 用户打开 phpinfo() 页面,重点核对 “Thread Safety”(TS 表示线程安全,NTS 表示非线程安全)和 “Architecture”(x64 或 x86)
选对安装方式(Linux/macOS 推荐 pecl,Windows 必须用 DLL)
不是所有方式都适合新手。pecl 最省事,源码编译适合定制需求,Windows 下只能靠预编译 DLL。
Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
-
Linux/macOS(推荐):直接运行
pecl install swoole,自动下载、编译、安装。完成后在php.ini末尾加一行extension=swoole -
Linux 源码编译(可控性强):下载对应版本的源码(如 swoole-src-4.10.x),解压后依次执行:
/path/to/phpize(务必用绝对路径)→./configure --with-php-config=/path/to/php-config→make && sudo make install
再加extension=swoole.so到 php.ini -
Windows(唯一可行路径):去 pecl.php.net 下载对应 PHP 版本 + TS/NTS + 架构 的
php_swoole.dll,放入 PHP 的ext目录,然后 php.ini 中写extension=php_swoole.dll
验证安装是否成功
别跳过这步——很多“装好了却用不了”的问题,其实卡在配置没生效。
- 重启 Web 服务(Apache/Nginx)或 PHP-FPM
- 终端执行
php --ri swoole,看到 “swoole => enabled” 和版本号(如 4.10.1)即成功 - 或者新建
test.php,内容为,浏览器访问应输出 OK - 若提示 “Class 'Swoole\Server' not found”,说明扩展加载失败,重点检查 php.ini 路径是否正确、是否重启服务、扩展名是否拼错(.so / .dll)
跑通第一个 TCP 服务(入门实战)
装完不写点代码,等于没入门。下面这段 10 行代码,启动一个监听 9501 端口的 TCP 服务器,收到消息就原样返回。
<?php $server = new Swoole\Server('127.0.0.1', 9501);
$server->on('connect', function ($server, $fd) {
echo "Client {$fd} connected\n";
});
$server->on('receive', function ($server, $fd, $from_id, $data) {
$server->send($fd, "Echo: {$data}");
});
$server->on('close', function ($server, $fd) {
echo "Client {$fd} closed\n";
});
$server->start();
- 保存为
tcp_server.php,终端执行php tcp_server.php - 另开终端,用 telnet 测试:
telnet 127.0.0.1 9501,输入任意文字回车,立刻收到带 “Echo:” 的响应 - Ctrl+C 停止服务;想后台运行可加
&,但生产环境建议用 supervisor 管理










