答案是缺少JSON扩展,需安装或启用:检查PHP环境是否加载json扩展,若未安装,根据操作系统选择对应命令安装(如Linux用apt-get/yum,macOS用brew,Windows修改php.ini),确保CLI与Web使用相同配置,最后验证json功能正常并重新运行composer。

出现 "requires ext-json \*" 错误,说明当前 PHP 环境缺少或未启用 json 扩展。JSON 扩展是 PHP 的核心扩展之一,用于处理 JSON 数据,在大多数项目中都是必需的。Composer 在安装或更新依赖时检测到该扩展缺失,因此报错中断操作。
检查 json 扩展是否已安装
运行以下命令查看当前 PHP 是否启用了 json 扩展:
php -m | grep -i json如果输出包含 json,说明扩展已加载;如果没有输出,则表示未启用或未安装。
启用或安装 json 扩展
根据你的操作系统和 PHP 安装方式,选择对应方法:
-
Linux(Ubuntu/Debian):运行命令安装 php-json 包
sudo apt-get install php-json
如果使用特定版本的 PHP(如 8.1),则使用:
sudo apt-get install php8.1-json -
Linux(CentOS/RHEL):
sudo yum install php-json 或
sudo dnf install php-json(取决于系统) -
macOS(使用 Homebrew):
如果通过 brew 安装 PHP,尝试:
brew install php@8.1(以实际版本为准,通常自带 json) -
Windows:
打开 php.ini 文件(可通过 php --ini 查看路径),找到这一行:
;extension=json
去掉前面的分号,改为:
extension=json
保存后重启 Web 服务或 CLI 环境。
确认 PHP CLI 和 Web 使用同一配置(常见坑点)
有时 Web 页面能用 json,但命令行报错,是因为 CLI 使用的 PHP 版本或配置不同。
检查 CLI 使用的 php.ini 路径:
确保该配置文件中也启用了 json 扩展。
验证修复结果
运行下面命令测试 json 是否可用:
php -r "echo json_encode(['test' => 'ok']);"如果输出 {"test":"ok"},说明问题已解决。再运行 composer 命令即可正常进行。
基本上就这些。只要确保 json 扩展在当前 PHP 环境中被正确加载,composer 的 require 检查就能通过。










