AWS Ubuntu构建项目报错:Composer依赖ext-sodium缺失
解决AWS CodeBuild Ubuntu 5.0环境下ext-sodium缺失导致Composer依赖失败的问题
问题根源
Ubuntu standard:5.0(基于Ubuntu 22.04)的默认PHP环境未预装ext-sodium扩展,而lcobucci/jwt 4.1.5、league/oauth2-server 8.3.3等依赖明确要求该扩展,导致composer install校验依赖时直接失败。
解决方案
修改你的buildspec.yml,在install阶段提前安装PHP sodium扩展,确保Composer执行前扩展已加载完成。
修改后的buildspec示例
version: 0.2 phases: install: runtime-versions: php: 8.1 # 根据项目实际PHP版本调整,Ubuntu 5.0支持8.1/8.2 commands: - apt-get update -y - apt-get install -y php-sodium # 安装ext-sodium扩展 - php -m | grep sodium # 可选:验证扩展是否成功加载 - composer install --no-interaction --optimize-autoloader # 保留原有的build、post_build等阶段配置
关键说明
- PHP版本适配:如果项目使用PHP 8.2,只需将
runtime-versions中的php版本改为8.2,php-sodium包会自动匹配当前激活的PHP版本。 - 权限无需担忧:CodeBuild环境默认以root用户执行命令,无需添加
sudo前缀。 - 验证步骤:添加
php -m | grep sodium可以快速确认扩展是否安装成功,方便后续排查。
验证方法
修改buildspec后重新触发构建:
- 查看install阶段日志,确认
php-sodium安装过程无报错。 - 确认
composer install阶段不再出现ext-sodium缺失的提示,依赖安装完成。
内容的提问来源于stack exchange,提问作者Ole Dahl Mansfeld
相关产品推荐
相关产品推荐

