workerman 5.2.3 在 wsl 环境安装与标准 linux 一致,需 php ≥7.4(推荐8.0+)、启用 pcntl 和 posix 扩展,通过 composer 安装,启动时用 -d 后台运行并注意端口权限与防火墙配置。

Workerman 5.2.3 在 WSL(Windows Subsystem for Linux)环境下安装,和标准 Linux 环境基本一致,关键在于确认 PHP 环境、扩展和权限配置到位。WSL 本身是真实的 Linux 内核兼容层(尤其是 WSL2),所以无需降级适配或特殊绕过。
确认 PHP 版本与必需扩展
Workerman 5.2.3 要求 PHP ≥ 7.4(推荐 8.0+),且必须启用 pcntl 和 posix 扩展——这两个是多进程模型的底层依赖,缺一不可。
- 运行
php -v检查版本,若低于 7.4 建议升级(如用 Ondrej PPA 安装 PHP 8.1) - 执行
php -m | grep -E "pcntl|posix",确保两扩展已加载;若缺失,需编辑php.ini启用(如取消;extension=pcntl前的分号),然后重启 PHP CLI 环境(WSL 中通常无需重启服务,重开终端即可) -
注意:WSL 默认不带这些扩展,尤其在通过
apt install php安装时,可能只装了基础模块,需额外安装php-cli和php-pcntl(Ubuntu/Debian 下)
用 Composer 安装 Workerman 5.2.3
确保已全局安装 Composer(composer --version 可验证)。进入你的项目目录,执行:
composer require workerman/workerman:5.2.3- 安装完成后,
vendor/bin/workerman可执行文件即就绪,或直接运行php vendor/workerman/workerman/start.php start启动示例服务 - 如果提示
command not found: composer,先运行curl -sS https://getcomposer.org/installer | php,再sudo mv composer.phar /usr/local/bin/composer
启动前的 WSL 注意事项
WSL 默认没有 systemd,也不建议用 systemctl 管理 Workerman 进程。生产部署应使用 supervisord 或简单脚本守护:
- 启动命令加
-d参数后台运行:php start.php start -d - 查看进程:
ps aux | grep start.php - 停止服务:
php start.php stop(需确保 start.php 中正确设置了Worker::$pidFile) - WSL 的端口默认对 Windows 主机可见(如
ws://localhost:2346),但需关闭 Windows 防火墙或放行对应端口
常见报错与处理
安装或启动失败时,优先检查以下三类问题:
-
“pcntl_fork() is disabled”:不是扩展没开,而是 PHP 配置中禁用了函数,检查
disable_functions是否包含pcntl_fork,删掉并重启 CLI 环境 - “Failed to listen on … Permission denied”:WSL 下绑定 1–1023 端口需 root 权限,改用 ≥1024 的端口(如 2346、8282)
-
“No such file or directory” 报 vendor/autoload.php:说明 Composer 安装未完成或路径错误,确认当前目录下有
vendor/,且composer install已成功执行











