Fatal error: Class 'ZipArchive' not found的解决办法


 今天在Linux底下上传Excel文件并显示输出时,抛出“ZipArchive library is not enabled” 的异常。而我在本地的windows下的代码则是运行正常的。

     原因是:在Linux下没有php_zip.dll这个文件(有也不会起作用的),所以需要重新编译一下php的zip模块。
      在Unix/Linux下的解决办法 :

      1、依次运行如下命令:

      cd /opt/lampp/
      wget http://pecl.php.net/get/zip   (默认会在线下载最新版本的,我这里用的是zip-1.10.2.tgz)
      tar -zxvf zip-1.10.2.tgz   (所下载的包名)
      cd zip-1.10.2
      /opt/lampp/bin/phpize    (对应的phpize路径 find / -name phpize 出来结果/opt/lampp/bin/phpize)
      ./configure --with-php-config=/opt/lampp/bin/php-config (对应的php-config路径)
      make
      make instal

  

     2、查看生成的模块路径(安装完之后,屏幕上会提示zip.so的位置):
cd /usr/lib/php/modules/ (对应的extensions路径 /usr/lib/php/modules/)

Installing shared extensions:     /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/

     3、修改php.ini如下图:

点击查看原图
     

 增加 extension=/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/zip.so

      然后同样在php.ini文件中,将zlib.output_compression = Off 改为 zlib.output_compression = On ;

      4、最后再重启一下XAMPP服务:
      /opt/lampp/lampp  stop
      /opt/lampp/lampp  start

      这个针对php的zip模块就安装完成了,能够在php中使用ZipArchive类了。


      附:在Windows下的解决办法就比较简单了 :

     1、在php.ini文件中,将extension=php_zip.dll前面的分号“;”去除
      然后同样在php.ini文件中,将 zlib.output_compression = Off 改为 zlib.output_compression = On ;

     2、重启Apache服务器。

 

注意事项:

若重启 xampp 时提示:

Warning: PHP Startup: Unable to load dynamic library ‘/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/memcache.so’ – /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/memcache.so: wrong ELF class: ELFCLASS64 in Unknown on line 0

说明您的操作系统是 64 位的,而 xampp 只对 32 位的系统提供支持。请下载如下压缩包替换对应的文件即可。

http://developerworks-ourplanet.googlecode.com/files/no-debug-non-zts-20090626.tar.gz

相关内容

    暂无相关文章