答案是php cli环境缺失zip扩展,需根据系统安装对应扩展并验证:运行php -m | grep zip确认缺失,用php --ini定位配置文件,按ubuntu用sudo apt install php-zip、centos 7用sudo yum install php-pecl-zip等命令安装,装后新开终端验证,同时检查libzip版本是否≥1.6.0。

Composer install 失败报“zip extension is missing”或“requires ext-zip”,说明 PHP CLI 环境没加载 zip 扩展——不是 Composer 的问题,是 PHP 缺模块,必须补上才能解压包。
确认 zip 扩展是否真没启用
别凭感觉,直接验证:运行 php -m | grep zip。如果没输出,就确定缺失;有输出但仍是报错,可能是 CLI 和 Web 用的 php.ini 不同,得查清楚实际加载的是哪个配置文件:php --ini。再运行 php -r "var_dump(class_exists('ZipArchive'));",返回 bool(false) 就坐实了问题。
按系统安装并启用 zip 扩展
不同环境命令差异大,抄错包名会白忙:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Ubuntu/Debian:
sudo apt install php-zip(自动写入配置,不用改 php.ini) - CentOS/RHEL 8+:
sudo dnf install php-zip - CentOS/RHEL 7:
sudo yum install php-pecl-zip - Alpine(Docker 常见):
apk add php8-zip或apk add php7-zip(看 PHP 版本) - macOS + Homebrew:
brew install php@8.2-zip(版本号要匹配你当前用的 PHP) - Windows:打开 CLI 模式下的
php.ini(php --ini查路径),取消;extension=zip前的分号;确认extension_dir指向正确,且php_zip.dll存在于该目录
装完别忘了新开终端,再跑一遍 php -m | grep zip 验证。
常见坑:扩展装了但 still not found
原因往往藏得深:
- CLI 和 Apache/Nginx 用的不是同一个
php.ini,改错了文件——务必用php --ini确认路径 - PHP 是编译安装的,
zip.so文件根本不存在,得手动pecl install zip或重新编译 - libzip 库太旧(如 CentOS 7 自带 0.10),PHP 8.0+ 要求 ≥ 1.6.0,即使扩展启用也会在解压时崩溃;查版本:
pkg-config --modversion libzip - Docker 中只装了
php-zip扩展,但基础镜像(如php:alpine)没装系统级unzip命令,Composer 默认优先调用它,结果卡在“unzip not found”——得补apk add unzip
真正麻烦的不是装不装得上,而是你以为装好了,结果 composer install 还在报错——这时候得一层层查 CLI PHP 加载了哪个 ini、哪个 so、依赖哪个 libzip 版本,漏掉任意一环都白搭。










