记录一次解决PHP Warning: PHP Startup: Unable to load dynamic library 'zip.so' libzip.so.5: cannot open
记录一次解决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来部署一些服务了,避免重复造轮子
- 一个关于if else容易迷惑的问题
- 5分钟学会PHP扩展开发与断点调试
- PHP教程系列3-写PHP程序前必须知道的5点信息
- PHP教程系列2-搭建PHP环境
- 我是如何拿到巨额漏洞奖金的
- Go 语言基础入门教程 —— 数据类型篇:数组切片的创建和遍历
- Go 语言基础入门教程 —— 数据类型篇:数组及其使用
- Go 语言基础入门教程 —— 数据类型篇:基本数据类型之间的转化
- Go 语言基础入门教程 —— 数据类型篇:字符串和字符类型
- Go 语言基础入门教程 —— 数据类型篇:浮点型与复数类型
- Go 语言基础入门教程 —— 数据类型篇:整型和运算符
- Go 语言基础入门教程 —— 数据类型篇:概述和布尔类型
- Go 语言基础入门教程 —— 常量和枚举
- Go 语言基础入门教程 —— 变量声明、初始化、赋值和作用域
- Go 语言基础入门教程 —— Go 项目基本工程管理示例
- Go 语言基础入门教程 —— 第一个 Go 程序