精品軟體與實用教程
PHP擴充安裝,在Centos中使用源碼安裝ZIP擴展
在Centos中安裝 PHP擴充 中的 ZIP擴充 ,PHP從7.X升級到PHP8.X後,有兩個php擴展失效,一個是imagick擴展,另外一個就是ZIP擴展,imagick擴展卸載掉原擴展後,使用pecl命令在官方的php擴展庫中安裝即可,在安裝ZIP擴展時,遭遇安裝失敗,發現是libzip的問題。下面我們一起安裝ZIP擴充。
在安裝zip擴充功能之前,先安裝libzip,前往libzip官網下載最新版本的libzip。
libzip官網:https://libzip.org/
Centos8安裝ZIP擴充
PHP7升級PHP8後安裝zip擴展,先卸載先前安裝過的zip和libzip。
dnf remove zip libzip
在卸載libzip時,會連帶卸載掉php-pecl-zip,這個是之前PHP7安裝的zip擴展,必須卸載掉。
卸載完畢之後重新安裝zip和libzip
dnf install zip
這個zip是zip主程序,在安裝php擴充前必須先安裝zip主程式。
libzip無法使用centos8的官方軟體庫,centos8版本比較老,官方軟體庫的libzip版本太低,在安裝zip擴充功能時會報錯無法安裝。
接下來從libzip官網下載最新版本的libzip
#下載libzip wget https://libzip.org/download/libzip-1.9.2.tar.xz #解壓縮libzip tar -xvf libzip-1.9.2.tar.xz #進入libzip資料夾準備安裝cd libzip-1.9.2
在安裝libzip之前,需要先安裝cmake3,libzip需要cmake3來編譯安裝。
dnf install -y cmake3
最後安裝libzip
#建立build後,進入該資料夾mkdir build && cd build #進行編譯cmake .. #進行安裝libzip make && make install
libzip安裝成功後,進行安裝zip擴充。
pecl install zip
或使用zip擴充源碼進行安裝。
在PHP官網的PHP擴充網站上https://pecl.php.net/package/zip下載最新版的php擴展
可以使用pecl指令安裝
wget https://pecl.php.net/get/zip-1.21.1.tgz pecl install zip-1.21.1.tgz
也可以使用編譯安裝
wget https://pecl.php.net/get/zip-1.21.1.tgz tar -xvf zip-1.21.1.tgz cd zip-1.21.1 phpize ./configure make && make install
zip擴充已經安裝成功了,不過很多時候都會報錯,使用 php -m
指令查看擴充功能是否安裝正確,如果報錯的話,還需要繼續處理錯誤。
系統報錯找不到libzip.so.5的解決方法
zip擴充安裝完畢後,一般會遇到:無法載入動態函式庫「zip.so」的錯誤。
PHP Warning: PHP Startup: Unable to load dynamic library 'zip.so' (tried: /usr/lib64/php/modules/zip.so (libzip.so.5: cannot open shared object file: No such file or directory), /sous/ (/usr/lib64/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'zip.so' (tried: /usr/lib64/php/modules/zip.so (libzip.so.5: cannot open shared object file: No such file 或(/usr/lib64/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
載入zip.so時缺少libzip.so.5文件,需要libzip.so.5文件。
libzip.so.5檔案正常的都安裝在/usr/local/lib64下,zip擴充功能需要將libzip.so.5檔案放在/usr/local/lib/下。
使用FTP工具將/usr/local/lib64資料夾下的libzip.so.5文件,複製到/usr/local/lib/資料夾下,將檔案權限修改為755
還有一種方法是,將zip.so分別軟連結在/usr/local/lib64 和/usr/local/lib 目錄下即可,透過idconfig 指令使其生效。
ln -s /usr/lib64/php/modules/zip.so /usr/local/lib64/zip.so && ldconfig ln -s /usr/lib64/php/modules/zip.so /usr/local/lib/zip.so && php/modules/zip.so /usr/local/lib/zip.so && php/ldconfig