Unable to load dynamic library 'zip.so' on Centos 6.8 useing php7.3
背景:
Centos6.8服务器升级php版本,从7.1升级到7.3,常用扩展都安装完成之后,报:Class 'ZipArchive' not found。一看就是zip扩展没有,需要手动安装了。
中间一步步,一会说autoconf版本过低,一会说libzip版本过低,又说cmake版本过低,
安装:
安装zip过程中,发现要先安装 libzip1.5,安装 libzip 之前还要安装 cmake,而且这一个个包都有版本过低问题,需要升级,请耐心往下看如何一个一个overcome
参考链接:https://blog.csdn.net/Phplayers/article/details/101083313
以下是我最开始尝试的安装步骤,大家按这个而顺序来,中间出现的失败报错,我都做了记录并给出相应解决方案。
1、准备 php 开发包和扩展库:
yum install php-devel php-pear
2、安装php的zip扩展:(PECL:The PHP Extension Community Library是php的扩展库)
pecl install zip
此处开始若遇到失败,请看下面的“遇到问题 / 解决问题”。
3、开启扩展( vim /etc/php.ini ):
extension=zip.so
zlib.output_compression = On
4、重启服务:
service php-fpm restart
此处若出现警告:PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/zip.so' - libzip.so.5: cannot...
则zip扩展加载失败,仍然会Class 'ZipArchive' not found,解决方案请看下面的“加载zip.so”
###################################################################
遇到问题:
第二步安装zip扩展时报错:
autoconf version 2.64 or higher is required
解决问题
升级autoconf,参考:https://blog.csdn.net/prettyshuang/article/details/51395095
---------------------------------------------------------------------------------------------------------------
遇到问题:
升级autoconf后,继续 pecl install zip 报错:
checking for libzip... not found
configure: error: Please reinstall the libzip
解决问题:
安装或升级libzip,参考:https://www.jianshu.com/p/fdbdf834faca
#删除旧版本
yum remove libzip -y
#安装新版本
wget https://libzip.org/download/libzip-1.5.0.tar.gz
tar -zxvf libzip-*
cd libzip*
mkdir build && cd build && cmake .. && make && make install
---------------------------------------------------------------------------------------------------------------
遇到问题:
安装libzip时报错:
CMake Error at CMakeLists.txt:4 (CMAKE_MINIMUM_REQUIRED):
CMake 3.0.2 or higher is required. You are running version 2.8.12.2
解决问题:
查看Cmake版本: cmake --version
安装CMake:yum install cmake (yum方式通常也会遇到版本过低,可以手动安装)
手动安装请参考:https://www.cnblogs.com/gyfluck/p/10478470.html
安装好cmake后,回去继续安装libzip,然后再接着执行: pecl install zip 。一切顺序的话会在 /usr/lib64/php/modules/ 目录下生成了 zip.so 文件。
###################################################################
加载zip.so
参考链接:https://blog.csdn.net/ren593669257/article/details/100019391
vim /etc/ld.so.conf
include ld.so.conf.d/*.conf # 默认只有这一行
/usr/lib64
/usr/lib
/usr/local/lib
/usr/local/lib64 # 我的只要这行就够了
查看/usr/local/lib64里面的内容

最后一步,使修改生效
sudo ldconfig
重启php-fpm,警告消失。
网上还有一些其他的解决方案,但是我都没成功,比如ln -s建立软链接:
https://www.jianshu.com/p/393c83937949
总结:
网上有很多资料,同样的报错不同的解决方式,一个一个试过来, 最终摸索出一条正确的路,在此做个记录,供有同样问题的人参考
Unable to load dynamic library 'zip.so' on Centos 6.8 useing php7.3的更多相关文章
- PHP启动:动态库加载失败(PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/*.so')
今天在linux上面智障一般搞了好久,本来想安装个swoole的,然后用 php -m 的命令想看下安装的PHP扩展库,发现有的扩展库有的可以出来,有的加载失败, 加载失败的错误类型: PHP Wa ...
- PHP Startup: Unable to load dynamic library
昨天帮一朋友配置服务器结果发现apache日志中有PHP Warning: PHP Startup: Unable to load dynamic library 提示了,然后调试数据库连接发现提示C ...
- 安装完 swoole 后出现 PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so'的解决方法
安装完 swoole 后出现 PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /home/s ...
- ***XAMPP:报错 Unable to load dynamic library的解决方法
A PHP Error was encountered Severity: Core Warning Message: PHP Startup: Unable to load dynamic libr ...
- PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/event.so'
这是因为启动apche 的时候重复加载了php的动态库模块了, 将:/etc/php.d/ 目录下的event.ini中的内容注释掉或者将文件删除即可
- PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_mbstring.dll' 的解决方法
step 1: cd /etc/php/{$yourphpversion}/cli step 2: sudo vim php.ini step 3: 在extension=php_mbstring.d ...
- PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/phalcon.so' - /usr/lib64/php/mod
这个警告可能是,扩展在php.d里面加载了一遍,然后又在php.ini里写了一遍导致的
- PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' - /usr/lib64/php/modules/redis.so: undefined symbol: igbinary_serialize in Unknown on line 0
网上找到两种解决方法, 1.先删除php-pecl-redis,再用pecl install redis 2.安装php-igbinary模块,不过我安装时包冲突了,没有安装成功,所以用了第一种方法
- PHP错误日志文件Warning:PHP Startup: Unable to load dynamic library...
由于我的环境是通过源码编译安装的,安装的时候配置信息和一些其他扩展没安装或设置好: php.err文件一直有这些提示,虽然不影响服务启动,但是看着心好累啊,决定要消灭他们. 问题描述: 出现原因: 上 ...
随机推荐
- addEventListener 的三个参数
addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click"):第二个参数表示要接收事件处理的函数:第三个参数为 useCapture,本文 ...
- 事件对象e的实现原理
转自:https://segmentfault.com/q/1010000007337410?_ea=1313467 事件对象传递原理 1.前置知识回顾 在讲传递原理前,我们先看看普通函数是如何传递参 ...
- basename函数不能获取url路径中文文件名的问题
basename basename() 函数返回路径中的文件名部分. 语法 basename(path,suffix) 参数 描述 path 必需.规定要检查的路径. suffix 可选.规定文件扩展 ...
- linux测试 Sersync 是否正常
[root@SERSYNC web]# for i in {1..10000};do echo 123456 > /data/web/$i &>/dev/null;do ne [r ...
- python常用函数 W
with…as with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭.线程中锁的自动获取和释放等.当python执行wi ...
- java并发学习--第四章 JDK提供的线程原子性操作工具类
在了解JDK提供的线程原子性操作工具类之前,我们应该先知道什么是原子性:在多线程并发的条件下,对于变量的操作是线程安全的,不会受到其他线程的干扰.接下来我们就学习JDK中线程的原子性操作. 一.CAS ...
- TCP TIME_WAIT和CLOSE_WAIT
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11484451.html 使用如下指令查看当前Server的TCP状态 netstat -n | awk ...
- 吐血整理 | 1000行MySQL学习笔记,不怕你不会,就怕你不学!
/ Windows服务 / / 连接与断开服务器 / / 数据库操作 / ------------------ / 表的操作 / ------------------ / 数据操作 / ------- ...
- // 62.是否有利润奖--lrj private boolean isProfitsAward; // 63.利润奖--lrj_price private String profitsAward;
// 62.是否有利润奖--lrj private boolean isProfitsAward; // 63.利润奖--lrj_price private String profitsAward; ...
- .Net Core 学习目录(搁置)
简介 .NET Core 是.NET Framework的新一代版本,是微软开发的第一个官方版本,具有跨平台 (Windows.Mac OSX.Linux) 能力的应用程序开发框架 (Applicat ...