将Ubuntu 从 21.10 升级到 22.04 ,发现宝塔面板的网页管理界面不能启动,但其它组件貌似正常启动.以下是解决过程

一 执行 bt 选择重启

执行过程没有报错,但还是访问不了网页,没有效果

二 执行 bt 选择修复

修复过程没有报错,一样访问不了网页

三 执行 bt 查看错误日志

发现是python代码里有报错"libssl.so.1.1: cannot open shared object file"

四 查看当前 openssl 版本

openssl version

发现升级后ssl是 3.X 版本了...

五 检查系统的python

python3
import "ssl"

正常

六 检查 宝塔的python

/www/server/panel/pyenv
import "ssl"

果然报了上面那个错误"libssl.so.1.1: cannot open shared object file"

七 检查 ssl的相关动态库

cd /usr/lib/x86_64-linux-gnu/
ll libssl.so*

发现没有了 libssl.so.1.1 ,取而代之的是3X版本的...

八 查看确认宝塔的python的引用情况

ldd /www/server/panel/pyenv/lib/python3.7/lib-dynload/_ssl.cpython-37m-x86_64-linux-gnu.so

结果:

linux-vdso.so.1 (0x00007ffc3fcba000)
libssl.so.1.1 => NOT FOUND
libcrypto.so.1.1 => NOT FOUND
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8f5322a000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8f53225000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8f53220000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8f537f0000)

可以看到缺少两个so

九 尝试将 3.X 复制成同名的文件

cp libssl.so libssl.so.1.1
..

再次执行bt,还是不能启动网页,不过错误信息不一样了...

version `OPENSSL_1_1_0' not found

目测是代码里有检查 OPENSSL的版本号....

十 解决办法

将本地wsl里(也是ubuntu)找到这两个so,上传到服务器...(两边的目录都是 /usr/lib/x86_64-linux-gnu )

估计 也可以从官网下载openssl的源码,在服务器上编译出来.

总结:还是go之类的静态编译好...依赖问题搞死人

标签: none