Centos7
默认提供的openssl
版本是1.0.2
的,某些php扩展或者其他软件依赖1.1
以上版本
如果过低的话就会报错libssl.so.1.1: cannot open shared object file: No such file or directory
也有执行openssl version
时报错和上面一致,这是由于openssl库的位置不正确或未安装1.1
以上版本的问题
想要升级openssl
版本则需要手动进行编译,报错解决方式很简单,安装正确即可,下面说一下我以Centos7
为例,说一下具体的编译安装步骤
1. 下载openssl
从openssl官网下载最新的代码包,因为源站下载速度过慢,所以我使用了腾讯云的镜像
#从官网下载 # wget https://www.openssl.org/source/openssl-1.1.1e.tar.gz #腾讯云提供的镜像 wget https://mirrors.cloud.tencent.com/openssl/source/openssl-1.1.1e.tar.gz
或者直接官网下载到 /usr/local/src 目录下
2. 编译openssl
tar -xvf openssl-1.1.1e.tar.gz #进入文件: cd openssl-1.1.1e ./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl make && make install
编译完成后,使用openssl version
来查看一下当前openssl版本号时,你会发现还是1.0.2,所以这里需要做一些额外的配置工作
3. 配置
echo "/usr/local/lib64/" >> /etc/ld.so.conf ldconfig
再次使用openssl version
找一下库libcrypto.so 的位置:
find / -name libcrypto.so
配置环境变量:
cd /etc/
vim ld.so.conf
添加libcrypto.so 所在文件路径:
再执行:ldconfig 命令
上面的问题就解决啦。