Sivo 悉见

近期宝塔Linux版本安装的PHP7.3缺少ZIP

匿名 · 更新于 2019/12/21

面板版本:BT-Panel 6.9.32 Beta

系统版本:CentOS 7.6 1810

问题现象:近期安装的 PHP-7.3 缺少 zip 扩展

原因分析:这个 Bug 实际上算是个历史遗留问题。2019年1月18日,有用户发现,PHP 更新到 7.3.1 就会报错:PHP模块重复加载。于是发帖报告的一个 Bug,帖子链接如下:
https://www.bt.cn/bbs/thread-21723-1-1.html
次日,河妖在论坛发帖,公布了问题原因和解决办法:
https://www.bt.cn/bbs/thread-21750-1-1.html
 

因早期安装的Php7.3是独立编译zip扩展,后续安装及升级是整合编译的,导致升级后会重复加载zip模块

因此,其后的PHP就不再单独编译ZIP扩展了。到了现在,半年多过去了,PHP 更新到了 7.3.8,ZIP 模块又不再整合了(不整合是对的,保持独立编译是最稳妥的方式),可是,却没有单独编译和安装ZIP扩展。

那么,解决办法也很简单,ZIP扩展本来就包含在软件包里,添加回来就可以了:
  1. cd /www/server/php/73/src/ext/zip/
  2. /www/server/php/73/bin/phpize
  3. ./configure --with-php-config=/www/server/php/73/bin/php-config
  4. make && make install
复制代码

然后,把以前从PHP配置文件里删去的行加回来:
  1. echo "extension = zip.so" >> /www/server/php/73/etc/php.ini
复制代码

最后重载一下 PHP 服务即可:
  1. service php-fpm-73 reload
复制代码