libltdl.so.3: cannot open shared object file

今天在Centos下擴展PHP mcrypt出現個小問題,mcrypt.so已經編譯出來,重啓Apache後發現在mcrypt擴展無效,檢查php.ini中的設置是正確無誤後,PHP -m 檢查看擴展發現有個警告,提示:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so' - libltdl.so.3: cannot open shared object file: No such file or directory in Unknown on line 0

沒有找到libltdl.so.3文件,應該是mcrypt擴展依賴的文件沒有,用ldd查看依賴關係,果然是缺少了libltdl.so.3文件,
[root@localhost mcrypt]# ldd /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
        linux-gate.so.1 =>  (0xb7f09000)
        libmcrypt.so.4 => /usr/local/libmcrypt/lib/libmcrypt.so.4 (0xb7ecf000)
        libltdl.so.3 => not found
        libc.so.6 => /lib/libc.so.6 (0xb7d6f000)
        /lib/ld-linux.so.2 (0x0011f000)

網上找了一下資料,是由於安裝目錄結構的原因引起在/usr/lib/目錄下沒有找到libltdl.so.3文件,把/usr/local/lib/libltdl.so.3文件鏈接過去就可以了

ln -s /usr/local/lib/libltdl.so.3 /usr/lib/libltdl.so.3

做個鏈接用,查看依賴
[root@localhost mcrypt]# ldd /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
        linux-gate.so.1 =>  (0xb7f2d000)
        libmcrypt.so.4 => /usr/local/libmcrypt/lib/libmcrypt.so.4 (0xb7ef3000)
        libltdl.so.3 => /usr/lib/libltdl.so.3 (0xb7ee6000)
        libc.so.6 => /lib/libc.so.6 (0xb7d8d000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7d88000)
        /lib/ld-linux.so.2 (0x0011f000)

OK,已經找到。
php -m 查看已經沒有警告提示,mcrypt也已經出來,重啓apache,確定mcrypt擴展成功。


發佈了44 篇原創文章 · 獲贊 3 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章