You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行php artisan test提示PHPUnit需要dom扩展如何解决

php artisan test 报"PHPUnit requires the dom extension" 解决方法

报错核心原因:dom是PHP原生C扩展,不属于composer管理的第三方依赖,执行composer install不会安装或启用该扩展,PHPUnit的文档解析、断言相关能力强依赖这个扩展,缺失就会直接抛出该错误。

按以下步骤排查修复:

  • 第一步:确认CLI模式下PHP的dom扩展状态
    打开终端执行命令,查看命令行端PHP已加载的扩展:
    php -m | grep dom
    如果执行后没有任何输出,说明扩展未加载;如果提示扩展不存在,说明对应PHP版本根本没安装dom扩展。
  • 第二步:对应环境安装/启用dom扩展
    • Debian/Ubuntu(含WSL2 Ubuntu):
      匹配你当前的PHP版本安装扩展包,比如PHP 8.1版本执行:
      sudo apt update && sudo apt install php8.1-xml php8.1-dom
      安装完成后会自动写入CLI的PHP配置,无需手动修改。
    • CentOS/RHEL/AlmaLinux:
      执行:
      sudo dnf install php-xml php-dom
    • Windows集成环境(PhpStudy、WAMP、XAMPP):
      先执行php --ini找到命令行PHP加载的php.ini文件路径(注意不要改错成Web服务FPM/Apache用的配置文件,两者经常是分开的),打开配置文件搜索;extension=dom,删除行首的分号注释符,保存后关闭所有终端窗口重新打开即可。
    • macOS Homebrew安装的PHP:
      该渠道的PHP默认自带dom扩展,如果未加载,同样通过php --ini找到配置文件,确认extension=dom.so行没有被注释,被注释的话去掉行首;保存即可。
  • 第三步:验证修复
    重新执行php -m | grep dom,如果输出dom字段,说明扩展加载成功,此时再执行php artisan test即可正常运行。

常见踩坑提醒:大部分人遇到这个问题都是因为只给Web运行环境开了dom扩展,命令行CLI环境用的是独立的php.ini配置,修改配置前一定要用php --ini确认当前CLI加载的配置文件路径,避免改了不生效。

内容的提问来源于stack exchange,提问作者developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:51:45