在工作过程中,部署项目安装的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
本文介绍了在部署项目时遇到的nginx执行报错问题,详细记录了如何排查并解决找不到libcrypto.so.1.1共享库文件的情况,包括尝试使用yum安装、检查openssl版本及通过符号链接解决问题的过程。
5339

被折叠的 条评论
为什么被折叠?



