在搭建网站使用compose的时候提示缺少zip组件,奈何宝塔里面的php不知道为何编译安装和快速安装均没有带zip拓展,且在安装拓展的页面也没找到,无奈只能自己手动编译了。本文章是从B站大佬 [[极客电玩]](https://www.bilibili.com/read/cv10219079/) 这篇文章借鉴的。由于按照原文章操作会有些问题(主要是写的不够全)所以自己再次谐调一下留一个备份。 
首先点开PHP看一下PHPinfo里面是否真的缺少zip

如果这里面没有zip的话~
以下是详细的解决方案
(环境已在BT面板安装好Php7.4)进入php扩展的zip目录
#进入BT安装的Php-zip目录(如果你是PHP7.3就把74改成73,以下所有的74同理)
cd /www/server/php/74/src/ext/zip执行编译命令
#检查依赖
./configure -with-php-config=/www/server/php/74/bin/php-config发现报错提示缺少(libzip)
一. 编译(libzip)
#下载并编译libzip
wget https://libzip.org/download/libzip-1.7.3.tar.gz安装时提示Cmake版本过低需要升级
1、cmake升级
注意在目录zip目录下执行
#下载cmake包
wget https://github.com/Kitware/CMake/releases/download/v3.20.0-rc3/cmake-3.20.0-rc3.tar.gz
#解压cmake
tar -zxvf cmake-3.20.0-rc3.tar.gz
#进入cmake源码目录
cd cmake-3.20.0-rc3
#检查依赖及环境(long time)
./configure
#开始编译并安装,安装速度由cpu决定(耐心等待吧long long time...)
make -j$(($(nproc) + 1)) && make install清理旧版本cmake
#卸载老版本cmake
yum remove cmake -y
#重新建立软链接
ln -s /usr/local/bin/cmake /usr/bin/
#查看版本(3.20.0)
cmake --versioncmake编译安装后就可以删除cmake源码目录(建议保留 方便后续卸载)
编译libzip
#首先返回zip文件夹
cd /www/server/php/74/src/ext/zip
#解压libzip
tar -zxvf libzip-1.7.3.tar.gz
#进入libzip文件夹
cd libzip-1.7.3
#创建build目录(存放编译生成的文件)
mkdir build
#生成makefile(cmake后有两个点)
cd build && cmake ..
#开始编译并安装
make -j$(($(nproc) + 1)) && make install
#在php.ini文件中添加zip.so动态库文件路径(该步骤再宝塔面板内php-配置文件进行也可以)
nano /www/server/php/74/etc/php.ini
#添加如下内容(以下路径视具体情况而定)
extension=/www/server/php/74/src/ext/zip/.libs/zip.so二. 开始编译zip扩展
退回到zip根目录下执行
#退回zip文件夹
cd /www/server/php/74/src/ext/zip
#检查依赖生成编译配置文件
./configure -with-php-config=/www/server/php/73/bin/php-config
#测试编译
make test报错提示需要禁用 proc_open()函数
修改php.ini文件
在php7.4里找到“禁用函数”删除以下三个
proc_open putenv shell_exec
(记得最后编译完成将这三个函数重新禁用)
再次执行make test 提示没有找到zip.so库
#打开ld.so.conf
nano /etc/ld.so.conf
#在文件中加入以下内容保存退出
/usr/lib64
/usr/lib
/usr/local/lib
/usr/local/lib64
#并刷新动态库
ldconfig -v
#最后在执行
make install
#查看zip扩展是否已经加入php中
php -m | grep zip