PHP7.0环境下pecl安装mongodb-1.4.2失败,疑证书过期
问题描述
执行命令:
RUN pecl install mongodb-1.4.2
得到报错输出:
RUN pecl install mongodb-1.4.2 && docker-php-ext-enable mongodb: No releases available for package "pecl.php.net/mongodb" install failed
同时执行wget时出现证书过期提示:
Connecting to pecl.php.net (104.236.228.160:443) ssl_client: pecl.php.net: certificate verification failed: certificate has expired
当前使用PHP版本为php:7.0,询问是否有解决办法,还是只能等待更新证书。
解决办法
临时跳过证书验证
给pecl命令添加--insecure参数,强制跳过SSL证书校验,作为临时应急方案:RUN pecl install --insecure mongodb-1.4.2 && docker-php-ext-enable mongodb注意:此方式会降低安全性,仅适合临时场景。
更新系统根证书
针对php:7.0(基于Debian Jessie)的Docker镜像,先更新系统根证书库:RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && update-ca-certificates RUN pecl install mongodb-1.4.2 && docker-php-ext-enable mongodb若使用Alpine版本的
php:7.0镜像,执行:RUN apk update && apk add ca-certificates && update-ca-certificates RUN pecl install mongodb-1.4.2 && docker-php-ext-enable mongodb手动下载编译安装
直接从PECL归档下载指定版本扩展包,手动编译安装:RUN curl -L --insecure https://pecl.php.net/get/mongodb-1.4.2.tgz -o mongodb.tgz \ && tar xzf mongodb.tgz \ && cd mongodb-1.4.2 \ && phpize \ && ./configure \ && make && make install \ && docker-php-ext-enable mongodb \ && rm -rf mongodb.tgz mongodb-1.4.2若已更新系统根证书,可去掉
curl命令中的--insecure参数。
内容的提问来源于stack exchange,提问作者reinisal
相关产品推荐
相关产品推荐

