背景:

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

https://stackoverflow.com/questions/54265257/unable-to-load-dynamic-library-zip-so-on-centos-7-6-1810-using-remi-php72-repo

总结:

网上有很多资料,同样的报错不同的解决方式,一个一个试过来, 最终摸索出一条正确的路,在此做个记录,供有同样问题的人参考

Unable to load dynamic library 'zip.so' on Centos 6.8 useing php7.3的更多相关文章

  1. 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 ...

  2. PHP Startup: Unable to load dynamic library

    昨天帮一朋友配置服务器结果发现apache日志中有PHP Warning: PHP Startup: Unable to load dynamic library 提示了,然后调试数据库连接发现提示C ...

  3. 安装完 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 ...

  4. ***XAMPP:报错 Unable to load dynamic library的解决方法

    A PHP Error was encountered Severity: Core Warning Message: PHP Startup: Unable to load dynamic libr ...

  5. PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/event.so'

    这是因为启动apche 的时候重复加载了php的动态库模块了, 将:/etc/php.d/ 目录下的event.ini中的内容注释掉或者将文件删除即可

  6. 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 ...

  7. PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/phalcon.so' - /usr/lib64/php/mod

    这个警告可能是,扩展在php.d里面加载了一遍,然后又在php.ini里写了一遍导致的

  8. 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模块,不过我安装时包冲突了,没有安装成功,所以用了第一种方法

  9. PHP错误日志文件Warning:PHP Startup: Unable to load dynamic library...

    由于我的环境是通过源码编译安装的,安装的时候配置信息和一些其他扩展没安装或设置好: php.err文件一直有这些提示,虽然不影响服务启动,但是看着心好累啊,决定要消灭他们. 问题描述: 出现原因: 上 ...

随机推荐

  1. markdown简介及基本语法

    一.前言 Markdown是一种轻量级标记语言,它以纯文本形式(易读.易写.易更改)编写文档,并最终以HTML格式发布. Markdown也可以理解为将以MARKDOWN语法编写的语言转换成HTML内 ...

  2. Solr的学习使用之(五)添加索引数据

    1.创建SolrServer类 SolrServer类:提供与Solr实例的连接与通信. 往Solr里添加索引数据,据说有好几种办法,这边利用SolrJ操作solr API完成index操作,具体So ...

  3. 解决 myEclipse与tomcat 不同步的问题

    在我们使用eclipse做web调试的过程中,一般只需要在eclipse修改程序,然后在浏览器刷新就能发现文件更改,今天突然发现保存后不能更改了.1.检查tomcat中的文件发现文件没有更新.2.检查 ...

  4. 380-Xilinx Kintex UltraScale FPGA KCU1500 Acceleration Development Kit

    Xilinx Kintex UltraScale FPGA KCU1500 Acceleration Development Kit Product Description The Kintex® U ...

  5. CreateProcessAsUser 服务调用

    CreateProcessAsUser 函数 如果想通过服务向桌面用户Session 创建一个复杂UI 程序界面,则需要使用CreateProcessAsUser 函数为用户创建一个新进程用来运行相应 ...

  6. Java使用多线程发送消息

    在后台管理用户信息的时候,经常会用到批量发送提醒消息,首先想到的有: (1).循环发送列表,逐条发送.优点是:简单,如果发送列表很少,而且没有什么耗时的操作,是比较好的一种选择,缺点是:针对大批量的发 ...

  7. AIX下绑定双网卡

    摘要 AIX下绑定双网卡,实现IP地址的高可用.为后续按照oracle11gRAC环境做准备.   收 藏 生产环境中是将不同网卡的不同网口进行绑定.比如A网卡有A1,A2网口:B网卡有B1,B2网口 ...

  8. rocketmq启动broker内存占用过大的问题

    解决方法: 修改broker启动脚本runbroker.sh里面的jvm参数 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" ...

  9. centos 6.5 安装 dubbo 管理中心

    从http://pan.baidu.com/s/1dDlI7aL下载dubbo-admin-2.5.4.war包,将下载的包放在tomcat的webapps目录,启动tomcat自动解压该war包,然 ...

  10. B/S大文件上传解决方案

    第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname =  ...