以下是網上找的資料,是GD庫不正常因起的。一般只要執行 yum install gd 命令就行。
今天安裝啟動nginx的時候報這個錯誤:error while loading shared libraries: libgd.so.2: cannot open shared object,網上查了相關資料,解決了,在此記錄下,也讓后面遇到這個問題的朋友能快速解決。
先說解決辦法,幫助著急解決問題的朋友,這個是因為缺失gd庫,把他裝上就可以了。 安裝辦法: 1、直接yum install gd 最簡單 2、如果yum搜索不到gd庫的安裝包,可以手動下載對應rpm包,下載地址:http://rpmfind.net/linux/rpm2html/search.php?query=libgd.so.2下載完了之后安裝即可。
安裝完成之后,再啟動nginx正常。
再來說問題排查步驟,后續遇到類似問題可以參考這個方法解決。
根據報錯提示,是libgd.so.2類庫文件加載失敗。這種情況要么對應lib沒有安裝,要么安裝位置沒到正確位置。通過ldd命令查一下nginx依賴的類庫文件:
ldd /usr/local/nginx/sbin/nginx
linux-vdso.so.1 => (0x00007fffd5fb6000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000000379e200000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x000000393f200000)
libpcre.so.0 => /lib64/libpcre.so.0 (0x00000033d5800000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x0000003c60200000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x0000003df9800000)
libdl.so.2 => /lib64/libdl.so.2 (0x000000390be00000)
libz.so.1 => /lib64/libz.so.1 (0x0000003a25600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003a24200000)
libgd.so.2 => not found
/lib64/ld-linux-x86-64.so.2 (0x0000003a23e00000)
libfreebl3.so => /lib64/libfreebl3.so (0x000000393ea00000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x000000379fa00000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x000000379d200000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x000000379e600000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000003df9c00000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000003dfa800000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003dfa400000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003a26a00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003df7c00000)
發現這個找不到, libgd.so.2 => not found
網上一搜,這個庫是gd安裝包帶的,如果確認安裝過gd,那么這個庫是在系統上的,通過find命令找到這個文件
find / -name 'libgd.so.2'
找到之后,可以復制一份到對應lib目錄,如果沒有,那只能重新安裝了,我們怎么知道要安裝包的名字呢?很簡單,你可以百度搜一下這個libgd.so.2,就能查到這個庫文件是來自哪個安裝包。 或者你可以到這個網站查,http://rpmfind.net/linux/rpm2html/search.php?query=libgd.so.2,查到這個類庫來自GD安裝包
先
yum search gd 搜一下,如果有,那就直接 yum install gd
就可以了,沒有的話也可以通過上面那個網站,找到符合自己系統的安裝包(主要靠操作系統版本號,還有事32還是64位的,新版本的都是64位了),下載下來,然后通過對應命令安裝就可以了。其它類庫文件缺失解決辦法類似。