首先确认缺失的PHP扩展名称,然后检查当前PHP环境是否已启用该扩展,接着根据操作系统安装或启用对应扩展,最后验证扩展是否生效,必要时可临时忽略平台依赖或升级PHP版本。

当你在使用 Composer 安装或更新依赖时遇到 "the requested PHP extension is missing" 错误,说明项目所需的某个 PHP 扩展未安装或未启用。Composer 检测到 composer.json 中声明的扩展在当前 PHP 环境中不可用。以下是解决该问题的实用步骤。
1. 确认缺失的扩展名称
错误信息通常会明确指出是哪个扩展缺失,例如:
- The requested PHP extension ext-json * is missing from your system.- Your requirements could not be resolved: ext-gd
记下扩展名(如 json、gd、mbstring、intl、pdo_mysql 等),这是下一步操作的关键。
2. 检查当前 PHP 环境和已加载的扩展
运行以下命令查看当前 CLI 使用的 PHP 版本和已启用的扩展:
立即学习“PHP免费学习笔记(深入)”;
php -v php -m
在输出列表中查找你缺失的扩展。如果没找到,说明它确实未启用或未安装。
注意:开发环境(如 Apache/Nginx)使用的 PHP 配置可能与 CLI 不同。可创建一个 PHP 文件:
通过浏览器访问,查看 Web 环境的扩展情况。
3. 安装或启用缺失的扩展
根据你的操作系统和 PHP 安装方式选择对应方法:
Linux(Ubuntu/Debian):
- 使用 apt 安装扩展包,例如:
sudo apt install php-mbstring sudo apt install php-xml sudo apt install php-gd sudo apt install php-intl
安装完成后重启 Web 服务:
sudo systemctl restart apache2 # 或 sudo systemctl restart php-fpm
Linux(CentOS/RHEL/Fedora):
- 使用 yum 或 dnf:
sudo dnf install php-mbstring sudo dnf install php-gd
macOS(使用 Homebrew):
- 如果你通过 brew 安装 PHP:
brew install php@8.1 # 包含常用扩展 # 或单独安装扩展(部分需手动编译)
Windows(XAMPP/WAMP):
- 打开 php.ini 文件(通常位于 XAMPP/php/php.ini)
- 搜索类似
;extension=gd或;extension=php_mbstring.dll - 去掉前面的分号
;来启用扩展 - 保存并重启 Apache
4. 验证扩展是否生效
再次运行:
php -m | grep 扩展名
例如:
php -m | grep mbstring
如果有输出,表示扩展已加载。也可用:
php -r "echo extension_loaded('mbstring') ? 'OK' : 'NO';"5. 忽略平台依赖(临时绕过,不推荐生产环境使用)
如果你只是想快速测试或部署,可以跳过扩展检查:
composer install --ignore-platform-reqs
或只忽略特定扩展:
composer install --ignore-platform-req=ext-json
警告:这样做可能导致运行时错误,因为代码实际需要这些扩展。仅用于调试或确认问题。
6. 检查 PHP 版本兼容性
某些扩展在新版 PHP 中已被移除或集成(如 ext-json 在 PHP 7.4+ 已内置)。如果你仍报错,可能是:
- PHP 版本太旧,不支持该扩展
- 使用了非标准编译版本(如自定义编译的 PHP)
升级 PHP 到推荐版本通常能解决问题。
基本上就这些。关键是先看清楚缺哪个扩展,再根据系统环境安装或启用。只要扩展到位,Composer 就不会再报这个错误。











