假期升级php,从7.0.1升到7.4,升级完成后部分功能受影响,按照项目报错情况开始排查:
导出功能报错:Class 'ZipArchive' not found
百度了一下,发现时zip拓展没有安装,查看phpinfo,确实没装,开始安装:
wget http://pecl.php.net/get/zip
解压,然后进入包里,执行:phpize
执行: ./configure --with-php-config=/usr/bin/php-config
报错了:checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11
要先卸载libzip,yum remove libzip
然后下载最新的,解压
wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar -zxvf libzip-1.5.2.tar.gz
这时发现还要安装cmake,再去下载cmake:
wget https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4.tar.gz
解压:
tar -zxvf cmake-3.15.4.tar.gz
注意:cmake要按照文档安装
./bootstrap && make && sudo make install
漫长的等待,安装完成后,执行
cmake -version
出现版本号即安装成功。
返回到libzip目录,执行
mkdir build
cd build
cmake ..
等待。。。
make && make install
然后把最开始解压的的zip文件夹删除,重新解压,进去
phpize
./configure --with-php-config=/usr/bin/php-config
make && make install
一切妥当,且/usr/lib64/php/modules目录里生成里zip.so,然后去修改php.ini,添加
extension=zip.so;
修改:
zlib.output_compression = On;
然后重启php-fpm,再查看php -m
还是没有zip扩展,而且还报错了:
PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/zip.so' - libzip.so.5: cannot...
无语了。。。。。。
无奈之下,用yum search zip查了一下安装包,发现有
php74-pecl-zip
我日!!!!!!
执行:
yum install php74-pecl-zip
就好了,折腾了一个晚上!!!!