Workerman 5.x 要求 PHP ≥ 8.1,低于则硬性终止启动;需确认 CLI 实际 PHP 版本(非 Web 环境),通过 which php、面板命令或 update-alternatives 切换,并安装对应 -cli 及 pcntl/posix/sockets 扩展,升级后须 composer update 或重装 vendor。
Workerman 报错
怎么办
Workerman 5.x 要求 PHP ≥ 8.1,低于这个版本会直接终止启动,并抛出
错误。不是警告,是硬性拦截——不升级 PHP,
都可能失败,更别说运行。
确认当前 PHP 版本和实际运行环境
很多人卡在「明明
显示是 8.2,但 Workerman 还报低版本」,根本原因是 CLI 和 Web SAPI(如 Apache/Nginx)用的不是同一个 PHP 二进制或配置。Workerman 是命令行程序,只认
命令对应的版本。
运行
看路径,再执行
(把路径替换成你看到的)确认真实版本
如果用的是宝塔、AMH 等面板,它们常自带多 PHP 版本管理,CLI 默认可能仍是旧版,需手动切换:
或类似命令(查面板文档)
Ubuntu/Debian 用户容易忽略
,它控制系统级
命令指向
Mac 上用 Homebrew 安装了多个 PHP?检查
Linux 下安全升级 PHP 到 8.1+ 的实操要点
别直接
—— Ubuntu 20.04 默认源最高只到 PHP 7.4,22.04 才带 8.1;CentOS 7 源里根本没有 PHP 8.x。必须换源或编译安装,但编译太重,推荐包管理方式。
Ubuntu 20.04:加
PPA 源(官方维护),再
,注意装
后缀包
CentOS 7:启用
仓库(
),再
,然后用
测试,再用
切换默认
所有系统都必须装 Workerman 依赖扩展:
、
、
—— 它们通常随主包安装,但某些精简镜像要手动开,比如 Alpine 需
升级后仍报错的三个隐蔽原因
PHP 版本对了,Workerman 还启动失败?大概率是 Composer 或缓存没同步。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
必须重跑 —— Workerman 5.x 的
有
约束,旧 lock 文件可能锁着 4.x 版本
+ 删除项目下的
目录再
,避免 autoload 加载了旧版类
某些 IDE(如 PhpStorm)内置终端会缓存 PATH,重启终端或 IDE 才能读到新
路径
Workerman 对 PHP 版本的检测发生在
里,一行代码就决定生死。它不看配置文件,不看环境变量,只信
。所以版本问题从来不是“差不多就行”,而是“差一位就不行”。
PHP version too lowPHP version too lowcomposer installphp -vphpwhich php/usr/bin/php -vbt default php 81update-alternatives --config phpphpbrew unlink php@8.0 && brew link php@8.1apt upgrade phpondrej/phpapt install php8.1-cli php8.1-mbstring php8.1-openssl php8.1-zip-cliremi-php81yum install epel-release && yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpmyum install php81 php81-php-cli php81-php-mbstringphp81 --versionalternatives --set php /opt/remi/php81/root/usr/bin/phppcntlposixsocketsapk add php81-pcntl php81-posixcomposer updatecomposer.json"php": "^8.1"composer clear-cachevendorcomposer installphpWorker::checkSapiPHP_VERSION_ID