先确认缺失的扩展名称和PHP版本,再按系统类型安装对应扩展。例如Ubuntu执行sudo apt install php8.1-mbstring,CentOS用sudo dnf install php-mbstring,macOS用brew install php-ext-intl,Windows则需修改php.ini并启用extension=mbstring,最后通过php -m验证扩展是否加载成功。

安装 Composer 项目时遇到 "The requested PHP extension ... is missing" 错误,说明当前 PHP 环境缺少某些必需的扩展。这在本地开发或部署项目时很常见,尤其是 Laravel、Symfony 等现代 PHP 框架对扩展依赖较多。别担心,这个问题有清晰的解决路径。
1. 明确是哪个扩展缺失
错误信息通常会明确指出缺少的扩展名称,例如:
The requested PHP extension ext-name (e.g., mbstring, gd, intl, xml) is missing from your system.先复制这个扩展名(如 mbstring),下一步就是安装它。
2. 检查当前 PHP 版本和配置
一台服务器可能安装多个 PHP 版本(如 7.4、8.1、8.2),你必须确保操作的是 Composer 实际使用的那个版本。
立即学习“PHP免费学习笔记(深入)”;
运行以下命令查看 PHP 版本和已加载的扩展:
-
php -v—— 查看当前 CLI 使用的 PHP 版本 -
php -m—— 列出已启用的所有扩展 -
php -i | grep extension_dir—— 查看扩展存放目录
确认你要安装的扩展是否真的不在列表中。
3. 根据操作系统安装缺失的扩展
不同系统安装方式不同,以下是主流环境的操作方法:
- 更新包管理器:
sudo apt update - 安装扩展(以 mbstring 为例):
sudo apt install php-mbstring - 如果你用的是特定版本,比如 PHP 8.1:
sudo apt install php8.1-mbstring
其他常用扩展命名类似:
php8.1-xmlphp8.1-gdphp8.1-curlphp8.1-intlphp8.1-zip
- 安装扩展示例:
sudo yum install php-mbstring - 新版系统使用 dnf:
sudo dnf install php-mbstring - 指定版本:
sudo dnf install php81-php-mbstring(取决于 remi 源配置)
- 如果你通过 brew 安装 PHP:
brew install php(默认包含多数核心扩展) - 单独安装扩展(如 intl):
brew install php-ext-intl或查看对应 formula - 推荐使用 shivammathur/php 源来管理多版本 PHP
- 打开 php.ini 文件(可通过
php --ini查找位置) - 找到类似
;extension=mbstring的行,去掉前面的分号 - 保存后重启 Web 服务(Apache/Nginx)
- 如果 .dll 文件不存在,需重新下载对应版本的 PHP 并替换 ext 目录
4. 验证扩展是否生效
修改后运行:
-
php -m | grep 扩展名—— 看是否出现在列表中 -
php -r "echo extension_loaded('mbstring') ? 'yes' : 'no';"—— 检查特定扩展
如果返回 yes,说明已加载成功。
5. 多版本 PHP 注意切换正确 SAPI
如果你在同一台机器上使用多个 PHP 版本,注意:
- CLI(命令行)和 Web(Apache/FPM)可能使用不同配置
- 用
which php和php --ini确认 CLI 加载的 php.ini - Web 端可用
phpinfo()函数查看实际加载的配置文件 - 确保两个环境都启用了所需扩展
6. 临时跳过依赖检查(不推荐生产环境)
若只是想快速测试项目结构,可临时忽略扩展依赖:
composer install --ignore-platform-reqs
⚠️ 警告:这会让 Composer 忽略所有平台要求(PHP 版本、扩展等),可能导致运行时报错。仅用于调试或打包用途。
基本上就这些。只要按步骤确认版本、安装对应扩展、验证加载状态,99% 的“missing extension”问题都能解决。关键是搞清楚你用的是哪个 PHP,然后给它装上缺的组件。











