nginx出错,找不到库./sbin/nginx: error while loading shared libraries: libcrypto.so.1.1
在工作过程中,部署项目安装的nginx执行报错,找不到库../nginx: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
由错误提示可以看出缺少libcrypto.so.1.1
通过命令:ldd $(which /usr/local/nginx/sbin/nginx) (ldd检测某条命令需要哪些共享库文件的支持)
(注释:在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置。默认情况下,/etc/ld.so.conf 文件中包含有默认的共享库搜索路径。)
根据提示nginx程序需要连接的共享库libcrypto.so.1.1没有,通过ls ‘/lib64/ libcrypto.so.1.1’也可验证没有
首先想到的yum 安装libcrypto.so.1.1
通过测试yum install libcrypto.so.1.1或yum groupinstall libcrypto.so.1.1均无法完成安装,如下图
提示没有可用的libcrypto.so.1.1 无法安装
然后使用openssl version来查看openssl版本,结果报如下错误:
这是由于openssl库的位置不正确造成的。
解决方法:
在root用户下执行
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
通过ldd $(which /usr/local/nginx/sbin/nginx) 再次检测,对应库已经正确指向,如下图
执行命令 [root@test nginx]# ./sbin/nginx –t 检测nginx显示正常,如下图
参考:http://www.cnblogs.com/xyb930826/p/6077348.html