![libidn.so 存在,但 cgi 找不到它](https://linux22.com/image/582907/libidn.so%20%E5%AD%98%E5%9C%A8%EF%BC%8C%E4%BD%86%20cgi%20%E6%89%BE%E4%B8%8D%E5%88%B0%E5%AE%83.png)
我有一个 Debian 6 服务器,64 位...
我检查了 ldconfig、ldconfig 路径、符号链接……,重新启动等等……但 cgi 仍然找不到 libidn.so.11。该包libidn11已安装(包括,以防万一,libidn11-dev和libnet-libidn-perl)
root@server:/home/user/public_html/cgi-bin/# ldd tbk_bp_pago.cgi
linux-gate.so.1 => (0xf77c4000)
**libidn.so.11 => not found**
libc.so.6 => /lib32/libc.so.6 (0xf7676000)
libnsl.so.1 => /lib32/libnsl.so.1 (0xf765e000)
libdl.so.2 => /lib32/libdl.so.2 (0xf765a000)
librt.so.1 => /lib32/librt.so.1 (0xf7651000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7638000)
/lib/ld-linux.so.2 (0xf77c5000)
该库已存在
root@server:/home/user/log# locate libidn.so.11
/usr/lib/libidn.so.11
/usr/lib/libidn.so.11.5.44
root@server:/home/user/log# ldconfig -v | grep "libidn.so.11"
libidn.so.11 -> libidn.so.11.5.44
我也在 Centos 5、64 位机器上测试了它,出现了同样的问题...
任何帮助都将受到赞赏。
更新:我已修复,谢谢
root@server:/tmp# ar vx libidn11_1.15-2_i386.deb
root@server:/tmp# tar -xvzf data.tar.gz
root@server:/tmp# cd usr/
root@server:/tmp/usr# cp -R lib/ libidn32/
root@server:/tmp/usr# mv libidn32/ /usr/lib32
root@server:/tmp/usr# echo "/usr/lib32/libidn32" >> /etc/ld.so.conf.d/libc.conf
root@server:/tmp/usr# ldconfig
root@server:/tmp/usr# ldd /home/user/public_html/cgi-bin/kcc6/tbk_*
/home/user/public_html/cgi-bin/kcc6/tbk_bp_pago.cgi:
libidn.so.11 => /usr/lib32/libidn32/libidn.so.11 (0xf7702000)
答案1
您有一个 64 位版本的库,但您的 CGI 二进制文件可能需要 32 位版本(根据其他库猜测)。通过谷歌搜索,我找到了包“ia32-libs-libidn11”,但无法测试它,因为我这里没有 Debian 盒子。
尝试在你的仓库中搜索类似的东西(“ia32-libs-libidn”或 libidn11)