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
网友评论