您的位置:首页 > 编程语言 > PHP开发

记录一次解决PHP Warning: PHP Startup: Unable to load dynamic library 'zip.so' libzip.so.5: cannot open

2019-07-08 10:32 7717 查看

记录一次解决PHP Warning:  PHP Startup: Unable to load dynamic library 'zip.so'   libzip.so.5: cannot open shared object file: No such file or directory 报错曲折路


使用PHP的composer安装项目的依赖包,提示PHP没有安装zip扩展,然后去安装zip扩展,这个倒很简单


./php/bin/pecl install zip


结果提示我libzip版本太低了,yum搜索到的版本比要求的低,只能拉取源码下载了

官网下载最新版:

wget https://libzip.org/download/libzip-1.5.2.tar.gz


解压

tar -zxvf libzip-1.5.2.tar.gz


进入解压出来的目录

cd libzip-1.5.2


准备configure安装,结果又报错了,1.5.0以上的版本需要cmake安装,于是准备cmake安装

哎呀,又提示我cmake版本太低了,yum也不是最新版,还得手动安装

官网下载最新版cmake:

wget https://github.com/Kitware/CMake/releases/download/v3.14.5/cmake-3.14.5.tar.gz


解压,configure,make, make install 还算顺利完成


退栈回到libzip,通过cmake安装,顺利完成


再退栈出来安装PHP的zip扩展,顺利完成,配置文件增加 extension=zip.so


运行php试下,结果报错

PHP Warning:  PHP Startup: Unable to load dynamic library 'zip.so' (tried: php7/lib/php/extensions/no-debug-non-zts-20170718/zip.so (libzip.so.5: cannot open shared object file: No such file or directory), php7/lib/php/extensions/no-debug-non-zts-20170718/zip.so.so (php7/lib/php/extensions/no-debug-non-zts-20170718/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0


Warning: PHP Startup: Unable to load dynamic library 'zip.so' (tried: php7/lib/php/extensions/no-debug-non-zts-20170718/zip.so (libzip.so.5: cannot open shared object file: No such file or directory), php7/lib/php/extensions/no-debug-non-zts-20170718/zip.so.so (php7/lib/php/extensions/no-debug-non-zts-20170718/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0


啥意思呢,安装的时候也提示成功了,zip.so扩展也在那个extensions文件夹里面,没有啥异常,

仔细一看,原来是报libzip.so.5 库找不到,怎么会呢,不是刚安装最新版的libzip么


搜一下安装的libzip是不是有libzip.so.5

locate libzip.so.5


/usr/local/lib64/libzip.so.5

/usr/local/lib64/libzip.so.5.0


原来安装到/usr/local/lib64目录下了,而动态库默认搜索路径为/usr/lib /usr/lib64这些,自然报搜索不到对应的库文件了


于是修改/etc/ld.so.conf文件,把/usr/local/lib64目录加上

执行 ldconfig -v 同步动态库


再次测试php -m | grep zip 扩展有了,不报错了,问题解决!


时间耗费不少,最终解决问题,倒没白费,不过频繁处理这种问题,时间有点浪费,看来还是得通过docker来部署一些服务了,避免重复造轮子


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP libzip