DigitalOcean Ubuntu部署Laravel执行composer install缺PHP扩展如何解决
问题根因
你犯了跨操作系统照搬配置的错误:
- Windows系统下PHP扩展需要手动放dll文件、修改php.ini启用,Ubuntu/Debian系Linux的PHP扩展统一通过系统包管理器
apt安装,安装时会自动生成配置、自动启用,不需要手动修改php.ini的扩展相关配置 - 你手动将
extension_dir改为./,导致PHP找不到系统默认路径下的扩展.so文件,触发了后续所有动态库加载失败报错
修复步骤
1. 回滚被改坏的php.ini配置
编辑/etc/php/8.0/cli/php.ini,做以下修改:
- 把你修改的
extension_dir = "./"这行注释掉(行前加;),恢复系统默认的扩展路径 - 把你手动取消注释的所有
extension=xxx相关配置全部重新注释掉,避免和包管理器自动生成的配置冲突
2. 用apt安装缺失的PHP扩展
执行以下命令安装所有你缺少的扩展(对应PHP8.0版本):
sudo apt update sudo apt install -y php8.0-mbstring php8.0-xml php8.0-gd
上述三个包已经覆盖了你报错里提到的所有依赖:
php8.0-mbstring提供mbstring扩展php8.0-xml提供dom、xml、tokenizer等所有xml相关扩展php8.0-gd提供gd扩展
安装过程中会自动启用所有扩展,不需要额外操作。
3. 验证扩展安装状态
执行命令查看已启用的扩展列表,确认所需扩展都存在:
php -m
检查输出里是否有mbstring、xml、gd、dom、phar这几个项。
4. 重新执行composer安装
回到项目根目录,重新执行composer install即可:
composer install
内容的提问来源于stack exchange,提问作者I-dont-know-
相关产品推荐
相关产品推荐

