解决Ubuntu升级到22.04后, 宝塔面板不能启动的问题
将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之类的静态编译好...依赖问题搞死人