前言
- 我宝塔上的项目所需php环境分两种,一种是需要php8.0,一种是php5.6
- php8.0可以正常安装
- php5.6安装会失败,即使安装成功,启动后报错也是显示
error while loading shared libraries: *.so.*
- 很明显这是缺少某些库,但是如果仅仅采用缺啥补啥的方案是行不通的,因为可能无穷尽
- 因为究极原因就是宝塔只是对于某个库的安装失败了而已,补上这个库,然后再卸载重新安装就行
具体解决
首先要判断缺少的库是怎么缺少的,分两种情况
- 库的路径不对
- 库没有被安装
最优先解决方案
- 一般都是通过 快速安装 安装的php
- 可以优先尝试下 编译安装
- 实在不行再看下面的解决方案
库的路径不对
例如报错如下:
error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared
在终端执行 查找这个so所在目录 的命令
find / -name libcrypto.so.1.0.0
如下所示:
[root@iZ7xvig9od2tl7zyh3tdekZ ~]# find / -name libcrypto.so.1.0.0
/usr/local/aegis/PythonLoader/third_party/libcrypto.so.1.0.0
/usr/local/aegis/PythonLoaderTemp/third_party/libcrypto.so.1.0.0
/usr/local/openssl/lib/libcrypto.so.1.0.0
如果有输出路径,就代表路径不对。
打开文件/etc/ld.so.conf
选一个路径加到文件末尾,例如
/usr/local/openssl/lib/libcrypto.so.1.0.0
加完后更新缓存ldconfig
ldconfig
库没有被安装
例如报错如下:
error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
这个是我的主要报错,也就是根源,打开终端安装这个缺少的库
sudo yum install libpng15
更新缓存
sudo ldconfig -v
安装好后立马启动估计又会报错显示缺少某个库,如果你有足够的耐心,那么可以一个库一个库安装。
不然就学我,直接卸载当前安装的
然后直接重新安装php,最好选择编译安装。
如果编译安装又出错了,那就继续安装缺少的那个库。
至于库的安装命令,我建议上百度,当然最佳选择是问chatGPT