Class ZipArchive not found,安装zip扩展

上传excel文件,进行导入数据操作时,本地Windows开发环境没有问题,服务器上报 Class ZipArchive not found 错误提示。

查询发现 Linux服务器上,PHP 缺少 zip扩展。(php5.6  非yum安装)

 

安装zip以及依赖libzip

libzip下载地址:https://libzip.org/download/

zip下载地址:http://pecl.php.net/package/zip

 

下载扩展包:

# cd /usr/src/

// 这是当前libzip版本,但是里面没有 configure文件
// 在执行后续 生成 configure等文件时,有报错,无法生成,有时间等待后续研究
# wget https://libzip.org/download/libzip-1.7.1.tar.gz

// 这是找到另一个libzip版本,这个里面有 configure文件,可以直接运行
# wget https://nih.at/libzip/libzip-1.2.0.tar.gz
# tar -zxvf libzip-1.2.0.tar.gz

# wget http://pecl.php.net/get/zip
# tar -zxvf zip

进入扩展包,进行编译安装:

# cd libzip-1.2.0/
// 由于此包内,存在 configure等文件,可以直接进行编译安装
# make
# make install

// 若没有报错,进行下一步zip安装
# cd zip-1.19.0/
// 根据本机 php安装路径下phpize 来生成 configure等文件
# /usr/local/Comsenz/php/bin/phpize
// 生成 configure等文件后,执行
# ./configure --with-php-config=/usr/local/Comsenz/php/bin/php-config
// 执行后,进行编译
# make
# make install

在zip扩展 make 编译时,若出现  /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or dire... 提示,找不到 zipconf.h文件

// 解决方法:直接手动复制过去即可
# cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
// 再进行 编译和安装
# make && make install

在 安装后,会提示 安装完毕的扩展路径,如:/usr/local/Comsenz/php/lib/php/extensions/no-debug-non-zts-20121212/zip.so

在提示路径下,找到 zip.so 扩展就安装成功了。

但,并不代表可以用了。下一步,找到 php.ini 文件进行修改。

# Off 改为 On
zlib.output_compression = On

# 添加扩展
extension=/usr/local/Comsenz/php/lib/php/extensions/no-debug-non-zts-20121212/zip.so

修改完 php.ini 文件后,记得 重启 php服务。

// 重启php服务
# service php-fpm restart

 

注意:可以通过 phpinfo(),查看 php.ini 文件所在位置,也可以查看 zip及zlib 扩展是否安装成功。

 

posted on 2020-07-09 19:09  yycode  阅读(4421)  评论(0编辑  收藏  举报

导航