centos下的php程序中报错:Class 'ZipArchive' not found 的解决方法
今天在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)
赏