libcares.so.2: cannot open shared

0x00 场景

使用 docker 安装了自己的 Ubuntu, 由于环境很干净, 在安装宝塔工具的时候并没有遇到问题, 进入宝塔, 安装属于自己的环境时, PHP 作妖了

在使用 PHP 命令的时候报错如下:

php: error while loading shared libraries: libcares.so.2: cannot open shared object file: No such file or directory

这个错误就是链接的库没有找到, 我第一时间以为没有这个库, 所以直接就去 opensuse
下载了

0x01 不废话, 请认真阅读

  • 优先查看自己本地是否存在这个库(我以为自己没有所以直接下载安装了, 导致我不知道我原本本地是否有没有)
// 这个 find 命令应该什么版本的 Linux 都有, 查询带有 libcares 的文件
$ find / -name *libcares*
  • 如果找得到 libcares.so.2 这个, 也就是和报错一模一样的名字的就说明本地有
  • 如果找不到, 可以试试 apt-get install libcares2
  • 如果 apt-get 失败, 就去 opensuse 下载
  • 下载的是 rpm 包, 在 Ubuntu 是不能直接用的, 先进行 apt-get install alien
  • 然后转换成 deb 包 alien libcares2_1.15.0+20200117-2.1_amd64.rpm
  • 最后 dkpg 安装 dpkg -i libcares2_1.15.0+20200117-2.1_amd64.deb
  • 再进行 find 命令查找这时候就能找到了, 我的结果如下:
// 这个是我的同名文件目录
/usr/lib64/libcares.so.2
  • 尝试使用 php 命令看看还会不会报错, 如果不会报错你就成功了
  • 如果还是报错, 就执行 ldconfig 命令重新链接一下
  • 尝试后还是报错的话就 cat /etc/ld.so.conf, 我的这个文件内容如下:
include /etc/ld.so.conf.d/*.conf

/usr/local/lib
  • 只需要将我的结果目录插入到这个 ld.so.conf 文件内就好:
// 插入
$ echo "/usr/lib64" >> /etc/ld.so.conf
// 重新链接
$ ldconfig

这样就成功了, 再执行 php 命令可以了, 回到宝塔重新安装 PHP

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容