提示信息 "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就可以了