今天在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服务哟~