解决 Composer 扩展缺失错误需三步:确认错误提示中的 ext-xxx 扩展名;按系统规范安装对应 PHP 扩展并匹配 PHP 版本;验证 php - m 中已启用且 Composer 调用的是同一 PHP 路径。

这类错误说明当前 PHP 环境缺少 Composer 依赖要求的扩展,比如 ext-curl、ext-mbstring、ext-xml 等。解决核心是:确认缺失扩展名 → 安装对应 PHP 扩展 → 确保 PHP CLI 和 Web 服务器使用同一套配置。
确认缺失的是哪个扩展
错误信息里明确写了扩展名,例如:
“The requested PHP extension ext-gd * is missing from your system.”
重点看 ext-xxx 这部分(如 gd、zip、pdo_mysql),这就是你要装的扩展名。注意有些扩展名带下划线(如 pdo_mysql)或连字符(如 mbstring),安装时需按系统规范写法。
立即学习 “PHP 免费学习笔记(深入)”;
根据系统安装对应 PHP 扩展
不同系统安装方式不同,关键是装对 PHP 版本(尤其是你用 php -v 和 composer install 时实际调用的 PHP):
- Ubuntu/Debian:运行
sudo apt update && sudo apt install php-xxx,比如php-gd、php-mbstring、php-xml、php-zip;PHP 8.2 用户要写php8.2-gd等 - CentOS/RHEL/Rocky:用
sudo dnf install php-xxx或sudo yum install php-xxx,例如php-gd、php-mbstring - macOS(Homebrew + php@8.2):扩展通常随 PHP 包一起编译,但像
gd、imap可能需额外装依赖并重装 PHP,例如:brew install libpng jpeg webp && brew reinstall php@8.2 - Windows(XAMPP/WAMP):打开
php.ini,去掉对应扩展行前的分号,如;extension=gd→ 改为extension=gd;注意路径和 DLL 文件是否存在
验证扩展是否生效
别只改了配置就跑 Composer——先确认 PHP CLI 真加载了扩展:
- 执行
php -m | grep xxx(如php -m | grep gd),有输出说明已启用 - 执行
php -i | grep "Loaded Configuration File"看当前 CLI 用的是哪个php.ini,确保你修改的是这个文件 - 如果用 Docker,记得在 Dockerfile 中安装扩展并重启 PHP 服务,不是只改 ini
- 某些扩展(如
pdo_mysql)还依赖系统库(如libmysqlclient),缺库会导致扩展加载失败,可用php -v检查是否有警告
检查 Composer 是否用了正确的 PHP
有时系统装了多个 PHP 版本(如系统自带 PHP + 自编译 PHP + Homebrew PHP),Composer 可能调用错版本:
- 运行
which php和which composer,再执行composer show --platform查看它识别的 PHP 路径和扩展列表 - 如果 Composer 调用的是
/usr/bin/php,但你只给/opt/homebrew/bin/php装了扩展,那就白装了 - 可临时指定 PHP 路径运行:
php /path/to/composer.phar install
基本上就这些。关键不是“装一个扩展”,而是“让正在跑 Composer 的那个 PHP 进程能加载它”。多确认 PHP 版本、配置文件路径、扩展启用状态这三点,基本都能搞定。
以上就是如何处理 Composer 安装依赖时提示“requires ext-xxx *”的错误?(PHP 扩展缺失)的详细内容,更多请关注