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

首先点开PHP看一下PHPinfo里面是否真的缺少zip

PHPinfo

如果这里面没有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)

#下载并编译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 --version

cmake编译安装后就可以删除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()函数
提示需要禁用 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

打开phpinfo就可以看到zip

End

本文标题:Centos7 宝塔面板PHP7.3/7.4编译Zip扩展

本文链接:https://blog.mchsfc.com/3.html

除非另有说明,本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

最后修改:2022 年 04 月 17 日
如果觉得我的文章对你有用,请随意赞赏