0x00 場景
使用 docker 安裝了自己的 Ubuntu, 由于環(huán)境很干凈, 在安裝寶塔工具的時候并沒有遇到問題, 進入寶塔, 安裝屬于自己的環(huán)境時, PHP 作妖了
在使用 PHP 命令的時候報錯如下:
php: error while loading shared libraries: libcares.so.2: cannot open shared object file: No such file or directory
這個錯誤就是鏈接的庫沒有找到, 我第一時間以為沒有這個庫, 所以直接就去 opensuse
下載了
0x01 不廢話, 請認真閱讀
- 優(yōu)先查看自己本地是否存在這個庫(我以為自己沒有所以直接下載安裝了, 導(dǎo)致我不知道我原本本地是否有沒有)
// 這個 find 命令應(yīng)該什么版本的 Linux 都有, 查詢帶有 libcares 的文件
$ find / -name *libcares*
- 如果找得到
libcares.so.2
這個, 也就是和報錯一模一樣的名字的就說明本地有 - 如果找不到, 可以試試
apt-get install libcares2
- 如果
apt-get
失敗, 就去 opensuse 下載 - 下載的是 rpm 包, 在 Ubuntu 是不能直接用的, 先進行
apt-get install alien
- 然后轉(zhuǎn)換成 deb 包
alien libcares2_1.15.0+20200117-2.1_amd64.rpm
- 最后 dkpg 安裝
dpkg -i libcares2_1.15.0+20200117-2.1_amd64.deb
- 再進行 find 命令查找這時候就能找到了, 我的結(jié)果如下:
// 這個是我的同名文件目錄
/usr/lib64/libcares.so.2
- 嘗試使用 php 命令看看還會不會報錯, 如果不會報錯你就成功了
- 如果還是報錯, 就執(zhí)行
ldconfig
命令重新鏈接一下 - 嘗試后還是報錯的話就
cat /etc/ld.so.conf
, 我的這個文件內(nèi)容如下:
include /etc/ld.so.conf.d/*.conf
/usr/local/lib
- 只需要將我的結(jié)果目錄插入到這個
ld.so.conf
文件內(nèi)就好:
// 插入
$ echo "/usr/lib64" >> /etc/ld.so.conf
// 重新鏈接
$ ldconfig
這樣就成功了, 再執(zhí)行 php 命令可以了, 回到寶塔重新安裝 PHP