Linux Mint 20创建Laravel 8.x项目遇ext-dom缺失错误求助
解决Laravel 8.x创建项目时ext-dom缺失的报错问题
你这是踩了Linux下多PHP版本扩展安装的常见小坑——虽然你装了php-xml,但大概率装的不是PHP 8.0对应的版本,导致CLI模式下的PHP 8.0依然找不到dom扩展。下面一步步帮你搞定:
第一步:确认当前CLI使用的PHP版本
先确保终端里用的确实是PHP 8.0,避免版本不匹配:
php -v
如果输出不是PHP 8.0.x,你可以用sudo update-alternatives --config php来切换CLI的默认PHP版本。
第二步:安装PHP 8.0专属的xml扩展
Linux Mint下不同PHP版本的扩展包是独立命名的,直接装php-xml会默认给当前系统默认PHP版本装扩展,所以要明确指定8.0版本:
sudo apt-get update sudo apt-get install php8.0-xml
这个包包含了dom、simplexml等Laravel需要的XML相关扩展,安装后会自动配置扩展加载。
第三步:验证dom扩展是否启用
安装完成后,运行以下命令检查dom扩展是否已经加载:
php -m | grep dom
如果输出dom,说明扩展已经成功启用,不需要再手动修改php.ini了——你之前改的php_intl.dll是Windows平台的扩展文件名,Linux下根本没用,而且通过apt安装的扩展会自动在conf.d目录生成配置,不需要手动调整php.ini。
第四步:重新创建Laravel项目
现在再运行Composer命令创建项目试试:
composer create-project laravel/laravel:^8.x your-project-name
为什么之前的操作没生效?
你之前执行的sudo apt install php-xml没有指定PHP版本,如果系统默认PHP不是8.0,这个命令装的是对应默认版本的xml扩展,而你CLI用的PHP 8.0根本没用到这个扩展,所以报错依然存在。另外,修改Windows格式的扩展配置也完全起不到作用,这是平台差异导致的小误区。
内容的提问来源于stack exchange,提问作者Alezco05




