centos下的php程序中报错:Class 'ZipArchive' not found 的解决方法

袁小威 2019-11-22 6140人围观
简介今天在Centos系统下编写导入EXCEL文件时,抛出“Class 'ZipArchive' not found“ 的异常。而我在本地的windows下的代码则是运行正常的。

今天在Centos系统下编写导入EXCEL文件时,抛出“Class 'ZipArchive' not found“ 的异常。而我在本地的windows下的代码则是运行正常的。

形成原因:在Centos也就是linux下并没有php_zip.dll这个文件(我不会告诉你即使有也并不会起作用~),所以需要重新编译一下php的zip模块。


安装zip具体步骤如下:

1.进入存放下载文件目录

cd usr/src

2.下载安装包

wget http://pecl.php.net/get/zip-1.12.4.tgz

3.进行解压

tar zxvf 包名

4.接入解压后的文件夹

cd zip-1.x

5.此时应该是不可以直接./configure的  所以需要先执行以下phpize,这里需要根据自己当前php版本安装的phpize的文件地址来执行

我的执行代码是:/usr/local/php/bin/phpize

6.然后就可以进行./configure编译了,此处需要注意的是,--with-php-config后面对应的路径是当前php版本的php-config所在文件路径  还有一点 这里编译的时候可能会报php-config路径不正确的错误  这是./cofigure 的操作权限问题  将php-config文件设置可写即可解决

./configure --with-php-config=/usr/local/php/bin/php-config

make

make install(安装完之后,会提示zip.so的位置。然后将其记录下来,如:/usr/local/lib/php/extensions/zip.so)


到这里,你是不是你已经大功告成了?如果过程没有任何报错,那么恭喜你,确实是大功告成了,但是,小威在安装编译的时候发现报错缺少libzip,所以,这里我们还得继续先安装libzip,具体步骤如下:

wget https://nih.at/libzip/libzip-1.2.0.tar.gz

tar -zxvf libzip-1.2.0.tar.gz

cd libzip-1.2.0

./configure

make

make install


注意:此处完成后,我们还需要修改php.ini文件(通常可能会在/etc/文件夹下,不过视当初安装php而定,可以通过phpinfo()来查看)。

增加:extension = 安装zip成功后的路径/zip.so

同时修改:zlib.output_compression = On 


最后,千万别忘了重启nginx服务哟~

很赞哦! (2)