答案:缺失PHP扩展时需根据报错安装对应模块。先确认缺失的扩展名,再在系统中通过包管理器或修改php.ini启用,最后验证并重启服务确保生效。

遇到 Composer 提示 "requires ext-zip"、"ext-gd" 或其他类似扩展缺失的问题,说明当前 PHP 环境缺少项目依赖的扩展模块。这类问题通常出现在安装 Laravel、图像处理类库或压缩文件操作类库时。
确认缺失的扩展名称
Composer 报错信息会明确指出缺少哪个扩展,例如:
- requires ext-zip * -> it is missing from your system.- requires ext-gd * -> the requested PHP extension gd is missing from your system.
根据提示确定是 zip、gd、intl、mbstring、xml 还是其他扩展。
在系统中安装对应的 PHP 扩展
不同操作系统安装方式略有不同,以下是常见环境的解决方法:
立即学习“PHP免费学习笔记(深入)”;
Ubuntu / Debian 类系统:
使用 apt 安装对应扩展:
- sudo apt install php-zip
- sudo apt install php-gd
- sudo apt install php-intl
- sudo apt install php-mbstring
- sudo apt install php-xml
如果提示找不到包,尝试加上 PHP 版本号,如 php8.1-zip 或 php8.2-gd。
CentOS / RHEL / Fedora:
使用 yum 或 dnf 安装:
- sudo yum install php-zip
- sudo yum install php-gd
或(新版系统):
- sudo dnf install php-zip
- sudo dnf install php-gd
macOS(使用 Homebrew):
如果你通过 brew 安装了 PHP:
- brew install php@8.1-zip (根据你的版本调整)
- brew install php@8.1-gd
注意:某些扩展可能已包含在 brew 的 PHP 包中,只需确保配置正确加载。
Windows(WAMP/XAMPP/手动安装):
打开 php.ini 文件(可通过 php --ini 查看路径),找到类似下面的行:
- ;extension=zip
- ;extension=gd
去掉前面的分号,保存后重启 Web 服务或命令行重新运行 Composer。
验证扩展是否已启用
运行以下命令检查扩展是否成功加载:
- php -m | grep zip
- php -m | grep gd
或查看完整列表:
- php -m
你也可以创建一个 info.php 文件,写入 ,通过浏览器访问,搜索对应扩展确认状态。
重启服务(必要时)
如果你使用 Apache 或 Nginx,安装扩展后需要重启服务才能生效:
基本上就这些。只要系统安装了扩展,并在 PHP 中正确启用,Composer 就不会再报 missing ext-* 错误。关键是确认当前 PHP CLI 使用的配置和扩展路径与你修改的一致。有时候开发环境和命令行用的不是同一个 php.ini,容易忽略。











