今天在Linux底下上傳
Excel文件時,拋出“ZipArchive library is not enabled” 的異常。而我在本地的windows下的代碼則是運行正常的。
原因是:在Linux下沒有php_zip.dll這個文件(有也不會起作用的),所以需要重新編譯一下php的zip模塊。
在Unix/Linux下的解決辦法 :
1、依次運行如下命令:
cd /usr/src
wget http://pecl.php.net/get/zip (默認會在線下載最新版本的)
tar zxvf zip-1.x.x.tgz (所下載的包名)
cd zip-1.x.x
/usr/bin/phpize (對應的phpize路徑 find / -name phpize 出來結果/usr/bin/phpize)
./configure --with-php-config=/usr/bin/php-config (對應的php-config路徑)
make
make instal
2、查看生成的模塊路徑(安裝完之後,屏幕上會提示zip.so的位置):
cd /usr/lib/php/modules/ (對應的extensions路徑 /usr/lib/php/modules/)
3、修改php.ini
增加 extension=zip.so
然後同樣在php.ini文件中,將zlib.output_compression = Off 改為 zlib.output_compression = On ;
4、最後再重啟一下Apache:./apachectl restart ;
這個針對php的zip模塊就安裝完成了,能夠在php中使用ZipArchive類了。
附:在Windows下的解決辦法就比較簡單了 :
1、在php.ini文件中,將extension=php_zip.dll前面的分號“;”去除
然後同樣在php.ini文件中,將 zlib.output_compression = Off 改為 zlib.output_compression = On ;
2、重啟Apache服務器。