如何在ubuntu 18.04和PHP 7.2上将Libzip更新为1.2

问题描述 投票:3回答:1

我想在Ubuntu服务器18.04.1上使用ZipArchive :: setEncryptionName和PHP 7.2.7

问题是setEncryptionName需要Libzip版本至少1.2

PHP信息的默认配置: Zip版本1.15.2 Libzip 1.1.2版

我不知道如何在ubuntu服务器上更新Libzip,我在win和mac上没有这个问题。

php encryption ubuntu-server ziparchive libzip
1个回答
1
投票

(1)找到更新版本的libzip and libzip-dev on Launchpad。目前在Eoan Ermine下面是1.5.1。下载正确的deb文件(libzip-dev_1.5.1-0ubuntu1_amd64.deb和libzip5_1.5.1-0ubuntu1_amd64.deb)。

(2)用它们安装

sudo dpkg -i libzip-dev_1.5.1-0ubuntu1_amd64.deb libzip5_1.5.1-0ubuntu1_amd64.deb

他们可能缺少某些依赖项,您可以尝试先使用apt安装它们,这样您就不需要从Launchpad下载任何更多“不兼容”的软件包。然后重新运行此命令。

(3)安装php-zip。安装PEAR(PECL)将php-zip升级到更新版本。还要安装PECL所需的php-dev来构建php-zip。

sudo apt install php-zip php-pear php-dev

(4)升级php-zip以支持更新的libzip。

sudo pecl install zip

(5)可能你不再需要开发库了。

sudo apt purge php-dev libzip-dev
sudo apt autoremove

(6)如果你有正确的libzip版本,请参阅phpinfo()。您可能需要重新启动网络服务器。

(7)您可以阻止apt自动升级您的php-zip,破坏您的自定义安装。但是你应该记得用pecl手动升级php,或检查新版本是否支持更新的libzip。 (请参阅安装的版本与sudo dpkg -l | grep zip)

sudo apt-mark hold php<installed version>-zip

要恢复原始版本(假设您使用过libzip5,并且不需要以前安装的软件包):

sudo apt-mark unhold php<installed version>-zip    
sudo pecl uninstall zip
sudo apt purge php-pear libzip5 php-zip
sudo apt autoremove
sudo apt install php-zip
© www.soinside.com 2019 - 2024. All rights reserved.