Workerman本质是纯PHP库,无需手动卸载系统扩展或改PHP配置;应先用composer remove或require:"!"清理旧版,再指定版本require workerman/workerman:"5.2.3"安装,并验证pcntl/posix扩展启用及class_exists('WorkermanWorker')。

直接删 vendor 里的旧 Workerman,再用 Composer 装新版本即可,不用手动卸载系统级扩展或改 PHP 配置——Workerman 本质是纯 PHP 库,不涉及全局安装。
确认当前安装状态
先检查项目里是否已存在旧版:
- 运行 ls vendor/workerman,如果目录存在,说明已通过 Composer 安装过
- 查看 composer.json 中是否有
"workerman/workerman": "x.x.x"或类似依赖行 - 执行 composer show workerman/workerman 可看到当前实际版本号
干净移除旧版本
推荐用 Composer 命令清理,避免残留:
- 执行 composer remove workerman/workerman(Composer 2.2+ 支持)
- 若提示命令不存在,改用:composer require workerman/workerman:"!"(强制移除)
- 完成后手动确认:rm -rf vendor/workerman 和 rm -f vendor/composer/autoload_psr4.php(可选,确保 autoloader 刷新)
安装 Workerman 5.2.3
明确指定版本,防止自动升级到更高小版本:
- 运行 composer require workerman/workerman:"5.2.3"
- 安装成功后检查:composer show workerman/workerman 应显示 exact 5.2.3
- 注意:Workerman 5.2.3 要求 PHP ≥ 7.3,且必须启用 pcntl 和 posix 扩展(Linux/macOS),Windows 下仅支持单进程调试模式
验证与启动
装完不是终点,需确认运行环境就绪:
- 检查扩展:php -m | grep -E "pcntl|posix"(Linux/macOS);Windows 用户跳过 pcntl 检查
- 禁用函数不能含 stream_socket_server、pcntl_fork 等(查 php -i | grep disable_functions)
- 写个最小测试文件(如
test.php):
require_once 'vendor/autoload.php';
echo class_exists('Workerman\Worker') ? "OK" : "FAIL"; - 能输出 OK,再跑 php start.php start -d 启动服务

















