Workerman 5.2.3 安装前必须确认PHP 7.4–8.1版本、pcntl/posix/sockets扩展启用、Linux/macOS CLI环境及端口权限;不支持Windows生产部署,不可在Web服务器或TP5控制器中启动。

Workerman 5.2.3 安装前,必须确认几个关键环境项,否则启动失败、运行不稳或无法发挥多进程优势。它不是普通 Composer 包,而是一个常驻内存的 CLI 服务器框架,对底层运行时有明确要求。
PHP 版本与核心扩展
Workerman 5.2.3 官方兼容 PHP 7.2–8.2,但实测最稳的是 PHP 7.4 到 8.1。PHP 8.2+ 可能出现 event loop 兼容问题,PHP 7.1 及更早版本已不再维护,不建议使用。
以下三个扩展必须启用:
- pcntl:用于多进程 fork 和信号处理,缺失则只能单进程运行,失去并发能力
- posix:支持进程组、用户权限控制等系统级操作,Windows 下不可用(仅限 Linux/macOS)
- sockets:Workerman 默认依赖,用于底层 socket 操作;虽部分场景可降级使用 stream,但强烈建议开启
检查命令:php -m | grep -E "pcntl|posix|sockets"
操作系统与运行模式
Workerman 必须运行在 Linux 或 macOS 的 CLI 环境下,不支持 Windows 生产部署(Windows 仅可用于开发调试,且 pcntl 不可用,强制单进程)。
不能在 Web 服务器(如 Nginx + PHP-FPM)中启动,也不能放在 ThinkPHP/TP5 控制器里 new Worker() —— 这类做法会导致进程随请求结束而销毁,长连接立即中断。
正确方式是:通过终端执行 php start.php start -d 启动守护进程,并配合 Supervisor 管理生命周期。
网络与端口权限
Workerman 默认监听 TCP 或 WebSocket 端口(如 2346、7272),需确认:
- 目标端口未被其他服务占用(可用 netstat -tuln | grep :端口号 检查)
- 防火墙(如 ufw、firewalld)已放行该端口
- 若部署在 Docker 或云服务器,安全组/容器端口映射需同步配置
可选但推荐的辅助组件
虽然非强制,但以下组件能显著提升生产可用性:
- Redis 5.0+:用于会话共享、消息广播、连接状态存储(尤其集群部署时)
- Supervisor:确保 Workerman 进程崩溃后自动重启,避免服务中断
- systemd 或自定义 shell 脚本:便于统一启停、日志轮转与权限隔离

















