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), /usr/lib64/php/modules/zip.so.so (/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 or directory), /usr/lib64/php/modules/zip.so.so (/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 && ldconfig