• 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

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

    总结:

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

  • 相关阅读:
    ajax实现无刷新上传附件并且显示进度条的实例
    thinkphp ajax 无刷新分页效果的实现
    微信错误码详述
    eclispse修改项目项目编码
    构建高性能web之路------mysql读写分离实战
    Hibernate 的Ehache学习
    sessionStorage和localStorage
    sql中的group by 和 having 用法解析
    Hibernate DetachedCriteria实现
    JavaScript eval_r() 函数
  • 原文地址:https://www.cnblogs.com/zifan/p/12021338.html
Copyright © 2020-2023  润新知