Dockerfile执行cURL安装Composer时报错:openssl扩展不支持SHA384
Dockerfile执行cURL安装Composer时报错:openssl扩展不支持SHA384
看起来你遇到的问题根源很明确——你的PHP环境缺少了openssl扩展,导致无法支持SHA384哈希算法,而Composer的安装脚本正是靠这个算法来验证安装包完整性的。
解决方法很简单,只需要在Dockerfile的apt-get install包列表里添加php7.4-openssl即可:
修改后的安装部分代码如下:
RUN apt-get update && \ apt-get -y install \ software-properties-common \ vim \ curl \ sudo \ dnsutils \ telnet \ git \ wget \ zip \ unzip \ unison \ gawk \ php7.4-cli \ php7.4-openssl \ # 新增这一行 php7.4-mysql \ php7.4-gd \ php7.4-curl \ php7.4-ldap \ php7.4-xmlrpc \ php7.4-xml \ php7.4-mbstring \ php7.4-zip \ php7.4-mbstring \ composer \ subversion \ openjdk-8-jdk \ make ruby ruby-dev gcc && \ apt-get clean && rm -rf /var/lib/apt/lists/*
为什么这能解决问题?因为Ubuntu 20.04的php7.4-cli包默认不包含openssl扩展,必须单独安装php7.4-openssl包才能让PHP支持SHA384这类哈希算法。你之前更换Composer版本没用,就是因为问题出在PHP环境本身,和Composer版本无关。
另外,手动复制installer.php也解决不了问题,因为报错的是PHP无法执行SHA384哈希计算,而不是installer文件本身的问题。
备注:内容来源于stack exchange,提问作者NewUser
相关产品推荐
相关产品推荐

