Composer 报错提示缺少 PHP 扩展,需根据错误信息中 ext- 后的扩展名(如 gd、mbstring)确认缺失项;通过 php -m 检查是否启用,未启用则依系统安装并启用对应扩展,最后验证并重试 Composer 命令。
这个错误说明 Composer 在安装或更新依赖时,发现当前 PHP 环境缺少某个扩展(extension),而项目或某个包的 composer.json 中声明了该扩展为必需(通常在 "require": { "ext-xxx": "*"} 里)。不是 PHP 版本不对,而是某个扩展根本没启用或没安装。
错误信息里一般会明确写出扩展名,比如:
The requested PHP extension ext-gd is missing
或
The requested PHP extension ext-mbstring is missing
注意看 ext- 后面的部分(如 gd、mbstring、curl、xml、zip 等),这就是你要装/启用的扩展。
运行以下命令查看已启用的扩展列表:
php -m | grep -i gd
把 gd 换成你看到的扩展名。如果没输出,说明没启用。
也可以运行:
php -i | grep "Loaded Configuration File"
找到 php.ini 路径,然后用文本编辑器打开它,搜索 extension=gd 或 extension=mbstring 这类行 —— 如果被注释(前面有分号 ;)或根本不存在,就需要处理。
Linux(Ubuntu/Debian):
apt list --installed | grep php-gd
sudo apt install php-gd(对应 ext-gd);sudo apt install php-mbstring;sudo apt install php-xml 等sudo phpenmod gd 强制启用sudo systemctl restart apache2 或 sudo systemctl restart php8.1-fpm
macOS(Homebrew + PHP):
brew install php-gd(部分扩展已随 php 一起安装,如 mbstring、xml 通常默认开启)/usr/local/etc/php/X.X/conf.d/ext-gd.ini 是否存在且内容为 extension=gd.so
brew services restart php
Windows(XAMPP/WAMP):
XAMPP\php\php.ini 或 WAMP 的 php 配置目录);extension=gd,去掉前面的分号(变成 extension=gd);同理处理 mbstring、curl 等php_gd2.dll 在 php/ext/ 目录下)改完配置后,务必验证:
php -m | grep -E "(gd|mbstring|curl)"
确保目标扩展出现在输出中。再运行:
composer diagnose
看是否还有扩展缺失提示。最后再执行你的原始命令,比如
composer install 或 composer update。
基本上就这些。不复杂但容易忽略——关键是看清报错里的扩展名,再对症启用,别一上来就重装 PHP。