答案是安装 php-xml 扩展包可解决 ext-dom 缺失问题。在 linux 系统中,DOM 属于 PHP 核心扩展但需通过安装 php-xml 包启用,ubuntu/debian 用户执行 sudo apt install php-xml 或指定版本如 php8.1-xml,centos/RHEL/Fedora 用户使用 yum 或 dnf 安装 php-xml,随后通过
验证扩展存在,确认后运行php -m | grep domcomposer install即可正常完成依赖安装,若 Web 环境仍报错需重启 apache 或 PHP-FPM 服务。

当使用 Composer 安装或更新 PHP 项目依赖时,如果系统提示缺少 ext-dom 扩展,这通常是因为该扩展未安装或未启用。DOM 是 PHP 的核心扩展之一,用于处理 XML 和 html 文档,在许多框架(如 laravel、symfony)和库中被广泛依赖。
检查是否缺少 ext-dom 扩展
运行以下命令查看当前已加载的扩展:
php -m | grep dom
如果没有输出或显示“Extension ‘dom’ not present”,说明扩展缺失。
在 Linux 下安装 ext-dom 扩展
不同于一些 PECL 扩展,DOM 是 PHP 核心组件的一部分,但默认可能未随基础包安装。根据你的 Linux 发行版,执行对应操作:
Ubuntu / Debian 系统
安装 php-xml 包,它包含了 DOM、XML、simpleXML 等所需扩展:
sudo apt update
sudo apt install php-xml
如果你使用特定版本的 PHP(如 8.1),请明确指定:
sudo apt install php8.1-xml
CentOS / RHEL / Fedora
使用 yum 或 dnf 安装:
sudo yum install php-xml
或(Fedora/CentOS 8+):
sudo dnf install php-xml
验证安装并继续使用 Composer
重新检查扩展是否加载:
php -m | grep dom
确认出现 dom 后,再次运行 Composer 命令:
composer install
此时应不再报 ext-dom 缺失错误。
注意事项
- 某些共享主机或最小化部署环境可能只安装了最基础的 PHP 模块,需手动补全常用扩展。
- php-xml 包通常包含多个子扩展(DOM, XML, SAX, etc),建议统一安装。
- 修改配置后若仍在 Web 环境报错,请重启 Web 服务(如 Apache 或 PHP-FPM)。
基本上就这些。只要补上 php-xml 软件包,Composer 就能正常识别 ext-dom,项目依赖也可顺利完成安装。