You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

这个包包含了domsimplexml等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

火山引擎 最新活动