首先确认PHP的zip扩展是否启用,若未启用则需根据操作系统安装:Ubuntu/Debian用apt-get install php-zip,CentOS/RHEL用yum或dnf,macOS用brew,Windows在php.ini中启用extension=zip;安装后重启Web服务,再通过php -m验证zip扩展是否生效,最后运行composer install测试问题是否解决。

当使用 Composer 安装或更新 PHP 包时,如果系统缺少 ZipArchive 扩展,会提示类似以下错误:
The zip extension and unzip command are both missing, skipping.这意味着 Composer 无法解压 .zip 格式的包,导致安装失败。解决这个问题的核心是启用 PHP 的 ZipArchive 扩展。
确认 Zip 扩展是否已安装
在终端运行以下命令查看当前 PHP 是否启用了 zip 扩展:
php -m | grep -i zip
如果输出包含 zip,说明扩展已启用。如果没有输出,则需要安装或启用该扩展。
安装 ZipArchive 扩展(根据操作系统)
不同系统下安装方式略有不同:
-
Ubuntu / Debian:
运行命令安装 php-zip 扩展sudo apt-get install php-zip
如果使用特定版本的 PHP(如 8.1),请使用完整包名:sudo apt-get install php8.1-zip -
CentOS / RHEL / Fedora:
sudo yum install php-zip或sudo dnf install php-zip -
macOS(使用 Homebrew):
如果通过 brew 安装 PHP,执行:brew install php@8.1(某些版本默认包含 zip) -
Windows:
确保 php.ini 中取消注释以下行:extension=zip
并确认php_zip.dll文件存在于 ext 目录中。
重启 Web 服务或 CLI 环境
安装完成后,重启相关服务使扩展生效:
- 如果是 Apache:
sudo service apache2 restart - 如果是 Nginx + PHP-FPM:
sudo service php8.1-fpm restart - CLI 环境通常无需重启,但可运行
php -m再次确认 zip 出现
验证问题是否解决
运行以下命令测试 Composer 是否能正常处理 zip 包:
composer install
或者创建一个新项目测试:
composer create-project --prefer-dist symfony/skeleton test-project
如果不再出现 zip 相关报错,并且项目成功创建,说明问题已解决。
基本上就这些。只要确保 PHP 的 zip 扩展正确安装并启用,Composer 就能顺利解压依赖包。这个扩展在大多数生产环境中都是必需的,建议始终开启。










