美文网首页
libcares.so.2: cannot open share

libcares.so.2: cannot open share

作者: 游城十代2dai | 来源:发表于2020-05-17 11:44 被阅读0次

    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

    相关文章

      网友评论

          本文标题:libcares.so.2: cannot open share

          本文链接:https://www.haomeiwen.com/subject/xjbjohtx.html