thinkphp 5.1.41需通过think-swoole扩展集成swoole,分三步:安装swoole php扩展、composer引入think-swoole:^2.0、配置swoole.php并执行php think swoole:server启动;须确保php≥7.3、禁用windows下daemonize、协程组件需用swoole原生客户端。

ThinkPHP 5.1.41 本身不内置 Swoole 支持,需通过官方扩展 think-swoole 手动集成,并配合已安装的 Swoole PHP 扩展才能启用长连接、协程等能力。整个过程分三步:装好底层 Swoole 扩展、引入 think-swoole 包、配置并启动服务。
确认 Swoole 扩展已正确加载
这是前提,否则后续所有操作都无效。
- 运行 php -m | grep swoole,终端应输出 swoole(注意大小写)
- 若无输出,需先安装 Swoole 扩展:
推荐用 PECL 安装最新稳定版:
sudo pecl install swoole
安装完成后,在 php.ini 中添加一行:
extension=swoole - 重启 Web 服务或 CLI 环境后再次验证
安装 think-swoole 扩展
该扩展是 ThinkPHP 官方维护的 Swoole 集成桥接器,适配 TP5.1+。
- 确保项目根目录下已存在 composer.json,且已安装 Composer
- 执行命令安装(建议指定兼容版本):
composer require topthink/think-swoole:^2.0
(v2.0.* 是专为 TP5.1 设计的稳定分支;不要用 v3+,那是为 TP6 准备的) - 安装成功后,框架会自动注册命令行指令 php think swoole:server
配置与启动 Swoole 服务
默认使用 TCP Socket 服务,如需 WebSocket 或 HTTP 模式需额外配置。
- 在 config/swoole.php 中(若不存在可新建)写入基础配置:
return [<br> 'host' => '0.0.0.0',<br> 'port' => 9501,<br> 'server_type' => 'http', // 或 'socket' / 'websocket'<br> 'option' => [<br> 'worker_num' => 4,<br> 'task_worker_num' => 2,<br> 'daemonize' => false,<br> ],<br>];
- 启动服务:
php think swoole:server
看到类似 Swoole http server started: http://0.0.0.0:9501 即表示运行成功 - 访问 http://localhost:9501,应能正常响应你的 TP5.1 应用首页(注意:此时走的是 Swoole 内置 HTTP 服务器,不再经过 Apache/Nginx)
注意事项
常见问题多出在环境和配置细节上。
- PHP 版本需 ≥7.1(TP5.1.41 推荐 PHP 7.3+ 或 PHP 8.0+;Swoole 4.8+ 要求 PHP 8.0+)
- 不要在 Windows 下用 daemonize => true,会导致启动失败
- 若要用 WebSocket,控制器需继承 think\swoole\websocket\Controller,并配置路由规则
- 数据库、Redis 等组件若需协程支持,必须使用 Swoole 提供的协程客户端(如
Swoole\Coroutine\MySQL),原生 PDO 不支持协程
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











