出现这个错误一般情况下是没有zip扩展造成的,这里可以用phpinfo或者php -m 命令查看是否安装启用该扩展。正常已安装phpinfo会有zip扩展的信息
window解决方案
在php.ini文件中,将extension=php_zip.dll前面的分号“;”去除;然后需要把zlib.output_compression = Off 改为 zlib.output_compression = On ;
如果没有php_zip.dll需要下载对应版本的dll
下载地址 http://pecl.php.net/package/zip
Linux解决方案
1.下载编译
wget http://pecl.php.net/get/zip
tar -zxvf zip
然后 cd到刚才解压的目录中
phpize
./configure
make && make install
安装完之后,屏幕上会提示zip.so的位置;把这个地址记下来,我这里是:/usr/local/php7.2/lib/php/extensions/no-debug-non-zts-20170718/zip.so
如果中途出现报错,可以参考下面解决,没报错的话直接到第二步就好啦
报错system libzip must be upgraded to version >= 0.11 是因为系统自带的libzip版本低了,需要安装最新的libzip
yum -y remove libzip-devel
wget https://libzip.org/download/libzip-1.3.2.tar.gz
tar xvf libzip-1.3.2.tar.gz
cd libzip-1.3.2
./configure
make && make install
安装完成后需要cd到刚才zip的解压目录继续 phpize 以及之后的命令
报错configure: error: Cannot find php-config. Please use --with-php-config=PATH
一般出现这个错误说明你执行 ./configure 时 --with-php-config 这个参数配置路径错误导致的
需要把 ./configure 命令修改为,注意这里的config路径是你的php-config的路径
./configure --with-php-config=/usr/local/php7.2/etc/php-config
ps:这里可以用whereis php 来查看php的安装位置
2.修改php.ini
增加extension = /usr/local/php7.2/lib/php/extensions/no-debug-non-zts-20170718/zip.so #这儿的地址就是刚才记下来的地址
并且将 zlib.output_compression = Off 改为 zlib.output_compression = On ;
ps:这里可以用whereis php 来查看php的安装位置,php.ini一般位于安装目录的etc目录下
3.重启服务
重启服务后再用phpinfo查看zip扩展信息