提示信息 "libssl.so.3: cannot open shared object file: No such file or directory" 表示Nginx在启动时无法找到libssl
库的第3版共享对象文件。
这个问题通常可以通过以下步骤解决:
- 确认libssl是否存在: 使用
locate
或find
命令来搜索系统中是否存在libssl
相关的库文件: - bash
locate libssl
- 安装或更新libssl库: 如果系统中缺少
libssl
库,你可以通过包管理器来安装或更新它。对于基于Debian的系统(如Ubuntu): - bash
sudo apt-get updatesudo apt-get install libssl1.1
- 对于基于Red Hat的系统(如CentOS):
- bash
sudo yum install openssl
- 链接正确的libssl版本: 如果系统中存在
libssl
的不同版本,确保libssl.so.3
存在或者创建一个指向正确版本的符号链接: - bash
sudo ln -s /path/to/libssl.so /usr/lib/libssl.so.3
- 替换
/path/to/libssl.so
为实际的libssl
库文件路径。 - 检查LD_LIBRARY_PATH环境变量: 确保
LD_LIBRARY_PATH
环境变量包含了libssl
库所在的目录,以便系统能够找到它: - bash复制
export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
解决方案
查看是否安装有openssl,低版本ssl需要重新安装
whereis openssl
查询是否已有找不到的依赖
查询是否已有找不到的依赖
find / -name libssl.so.3
find / -name libcrypto.so.3
链接
ln -s /usr/local/openssl/lib/libssl.so.3 /usr/lib/libssl.so.3
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl/lib/libcrypto.so.3 /usr/lib/libcrypto.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
再次启动nginx就可以了