首先要明确一点,如果是服务器是空白环境,即在安装 bt 面板之前没有安装其他的服务软件,测试是没有出现启动需要依赖库的情况的。

在执行脚本安装了服务器环境之后,再去使用宝塔的安装脚本执行,最后执行是成功的。但在安装 nginx 和 php 的过程中出现了依赖库确实的情况,前一种安装 nginx 缺少 libpng12.so.0 之前已做过记录:ubuntu 系统(已安装服务器环境)使用宝塔 Linux 面板踩坑,还有 php: error while loading shared libraries: libwebp.so.6: cannot open shared object file: No such file or directory。这个 libwebp.so.6 的依赖库在文章里也做了记录。

这次在启动 php 7.1 时碰到了一个新的 libcares.so.2 依赖库报失。百度找到一个教程 libcares.so.2: cannot open shared,是通过下载 rpm 包,之后转成 ubuntu 需要的 deb 包,再通过 dpkg 安装的(注意,指令是 dpkg)。这边做步骤的简单转载:

  1. 查找本地是否存在 libcares 库
find / -name '*libcares*'

注意,-name 后带 * 的字符串需要添加引号标识。如果本地存在可以跳过第二步。

  1. 下载、安装 libcares2

尝试使用 apt-get install libcares2 安装,失败,找不到这个安装包。

openuse 下载 rpm 包,选择 x86_64 版本:

wget https://download.opensuse.org/repositories/openSUSE:/Factory/standard/x86_64/libcares2-1.18.1-1.5.x86_64.rpm

rpm 包在 ubuntu 系统中无法直接使用,通过 alien 指令转化成 deb:

alien libcares2-1.18.1-1.5.x86_64.rpm
# 得到一个 libcares2_1.18.1-2.5_amd64.deb 文件

dpkg 安装 deb 包:

dpkg -i libcares2_1.18.1-2.5_amd64.deb
  1. 安装之后依然报错找不到这个依赖库

用步骤 1 里的查询指令可以看到依赖库的地址 /usr/lib64/libcares.so.2。但此时这个 /usr/lib64/ 并不在 php 可使用的包含路径里,需要添加:

# 将依赖库路径添加到文件末尾
echo "/usr/lib64" >> /etc/ld.so.conf
# 重新链接
ldconfig
# 查看新文件内容
cat /etc/ld.so.conf

可以看到路径已经添加到文件末尾,且 bt 面板重新启动 php 7.1 已经成功了。