Workerman 5.2.3 不是 Laravel 扩展,需与 Laravel 共存运行、统一命令管理、共享资源;生产环境推荐使用稳定版 v4.1.x,通过 Composer 安装并集成 Artisan 命令控制,配合 GatewayWorker 更适合中大型实时业务。

Workerman 5.2.3 不能直接“和 Laravel 一起安装”,它不是 Laravel 的扩展组件,而是独立的常驻进程 PHP 网络框架。集成的关键在于**共存运行、命令统一管理、资源共享**,而不是打包安装。下面分几个实际环节说明怎么做。
确认兼容性与安装方式
Workerman 5.2.3 要求 PHP ≥ 7.4(推荐 8.0+),Laravel 10/11/12 均可支持。注意:Workerman 5.x 不再提供 workerman/workerman 的稳定版 Composer 包(官方已转向 workerman/workerman v4.x 为最后的稳定分支,v5.x 属实验性重构,暂未发布正式 Packagist 版本)。当前(2026年10月)生产环境不建议直接使用 Workerman 5.2.3,应优先选用稳定的 v4.1.x(如 "workerman/workerman": "^4.1")。
- 执行
composer require workerman/workerman:^4.1即可完成安装 - 若坚持尝试 v5.2.3,需手动克隆仓库:
git clone https://github.com/walkor/Workerman.git vendor/workerman/workerman,并自行维护 autoload - Laravel 无需额外修改 autoloader,Workerman 类可通过
use Workerman\Worker;正常调用
通过 Artisan 命令统一管理服务
Workerman 是 CLI 进程,必须由命令行启动/停止。Laravel 提供了 artisan 入口,最适合封装 Workerman 服务。
- 运行
php artisan make:command WorkermanServer创建控制台命令 - 在
handle()方法中初始化 Worker 实例(如 WebSocket 或 HTTP) - 关键操作:重置全局
$argv,确保 Workerman 正确识别start/stop参数 - 注册该命令到
app/Console/Kernel.php的$commands数组中
路径、环境与权限注意事项
Workerman 启动后会长期驻留内存,其行为受运行环境直接影响:
- 启动命令必须在 Laravel 项目根目录下执行(确保
vendor/autoload.php可加载) - 日志默认写入
workerman.log,建议改写到storage/logs/workerman-*.log并配置 Logrotate - 若用
--daemonize模式,需保证运行用户对storage/和runtime/目录有读写权限 - .env 中定义的变量(如
APP_ENV,REDIS_HOST)可在 Workerman 进程中通过$_ENV或config()获取,但需在 Worker 初始化前加载 Laravel 配置(例如app()->make('config'))
推荐搭配 GatewayWorker(适合聊天/IM 场景)
单纯用 Workerman 做 WebSocket,需自己实现连接管理、心跳、广播等逻辑。中大型实时业务更推荐基于它构建的 GatewayWorker:
- 安装:
composer require workerman/gateway-worker:^3.0 - 它包含 Register / Gateway / BusinessWorker 三类进程,天然支持多网关、用户绑定、群组推送
- Laravel 只负责 BusinessWorker 中的业务逻辑(如查数据库、发通知),连接层完全解耦
- 前端仍连 WebSocket 地址(如
ws://your-domain.com:8282),Laravel 不参与通信链路


















