Class ZipArchive not found,安裝zip擴展


上傳excel文件,進行導入數據操作時,本地Windows開發環境沒有問題,服務器上報 Class ZipArchive not found 錯誤提示。

查詢發現 Linux服務器上,PHP 缺少 zip擴展。(php5.6  非yum安裝)

 

安裝zip以及依賴libzip

libzip下載地址:https://libzip.org/download/

zip下載地址:http://pecl.php.net/package/zip

 

下載擴展包:

# cd /usr/src/

// 這是當前libzip版本,但是里面沒有 configure文件
// 在執行后續 生成 configure等文件時,有報錯,無法生成,有時間等待后續研究
# wget https://libzip.org/download/libzip-1.7.1.tar.gz

// 這是找到另一個libzip版本,這個里面有 configure文件,可以直接運行
# wget https://nih.at/libzip/libzip-1.2.0.tar.gz
# tar -zxvf libzip-1.2.0.tar.gz

# wget http://pecl.php.net/get/zip
# tar -zxvf zip

進入擴展包,進行編譯安裝:

# cd libzip-1.2.0/
// 由於此包內,存在 configure等文件,可以直接進行編譯安裝
# make
# make install

// 若沒有報錯,進行下一步zip安裝
# cd zip-1.19.0/
// 根據本機 php安裝路徑下phpize 來生成 configure等文件
# /usr/local/Comsenz/php/bin/phpize
// 生成 configure等文件后,執行
# ./configure --with-php-config=/usr/local/Comsenz/php/bin/php-config
// 執行后,進行編譯
# make
# make install

在zip擴展 make 編譯時,若出現  /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or dire... 提示,找不到 zipconf.h文件

// 解決方法:直接手動復制過去即可
# cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
// 再進行 編譯和安裝
# make && make install

在 安裝后,會提示 安裝完畢的擴展路徑,如:/usr/local/Comsenz/php/lib/php/extensions/no-debug-non-zts-20121212/zip.so

在提示路徑下,找到 zip.so 擴展就安裝成功了。

但,並不代表可以用了。下一步,找到 php.ini 文件進行修改。

# Off 改為 On
zlib.output_compression = On

# 添加擴展
extension=/usr/local/Comsenz/php/lib/php/extensions/no-debug-non-zts-20121212/zip.so

修改完 php.ini 文件后,記得 重啟 php服務。

// 重啟php服務
# service php-fpm restart

 

注意:可以通過 phpinfo(),查看 php.ini 文件所在位置,也可以查看 zip及zlib 擴展是否安裝成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM