windows 11 可运行 workerman 5.2.3,但仅支持单进程(因 pcntl 不可用),适用于本地开发与轻量测试;需 php 7.4+、启用 sockets/posix/mbstring/openssl 扩展,用 composer 安装后编写 server.php 并执行 php server.php start 运行。

Windows 11 上可以搭建 Workerman 5.2.3,但需明确一点:Workerman 在 Windows 下仅支持单进程运行(pcntl 扩展不可用),不能启用多进程/守护模式,也不适合高并发生产环境,但完全可用于本地开发、功能验证或轻量级测试。
确认 PHP 环境并启用必需扩展
Workerman 5.2.3 要求 PHP 7.4 或更高版本(推荐 8.0–8.3),且必须启用以下扩展:
- posix:必须启用(Windows 下部分函数受限,但 Workerman 基础运行依赖它)
- sockets:必须启用(所有网络通信的基础)
- mbstring:建议启用(处理中文等多字节字符)
- openssl:如需 TLS/HTTPS/WebSocket wss 支持,必须启用
检查方式:在命令行执行 php -m | findstr "posix sockets mbstring openssl"。若缺失,编辑 php.ini,取消对应扩展前的分号(如 extension=sockets),保存后重启终端。
安装 Workerman 5.2.3
推荐使用 Composer 安装(更规范、易管理):
- 确保已安装 Composer(运行
composer --version验证) - 新建项目目录,例如
D:\workerman-demo - 执行命令安装指定版本:
composer require workerman/workerman:5.2.3 - 安装完成后,
vendor\workerman\workerman即为框架主目录
也可手动下载:访问 GitHub v5.2.3 发布页,下载 Workerman-5.2.3.zip,解压后将 Workerman 文件夹放入项目 vendor 目录并重命名为 workerman,再手动引入自动加载(不推荐,易出错)。
直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。
编写并运行一个最简 WebSocket 服务
在项目根目录创建 server.php:
<?php use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
$ws_worker = new Worker('websocket://0.0.0.0:2346');
$ws_worker->onMessage = function($connection, $data) {
$connection->send('Welcome to Workerman 5.2.3 on Windows 11!');
};
// Windows 不支持多进程,强制设为 1
$ws_worker->count = 1;
Worker::runAll();
在命令行中执行:php server.php start
注意:
• 不要加 -d(Windows 不支持守护进程)
• 若提示“端口被占用”,用 netstat -ano | findstr :2346 查进程 ID,再用 taskkill /f /pid XXXX 结束
• 防火墙需放行 TCP 2346 端口(控制面板 → Windows Defender 防火墙 → 允许应用通过防火墙)
前端连接测试与常见问题
新建 test.html,用浏览器打开:
<script>
const ws = new WebSocket('ws://127.0.0.1:2346');
ws.onopen = () => ws.send('Hello');
ws.onmessage = e => console.log('Server:', e.data);
</script>
常见报错及应对:
-
"Could not open socket":检查 PHP 是否启用了
sockets扩展,或端口是否被占用 -
"Connection refused":确认
server.php正在运行(CMD 窗口保持打开状态),且未被杀掉 -
中文乱码或发送失败:确保
mbstring已启用,并在php.ini中设置default_charset = "UTF-8" -
想开机自启?:可用 NSSM 将
php server.php start注册为 Windows 服务










