【问题标题】:How to update Libzip to 1.2 on ubuntu 18.04 and PHP 7.2如何在 ubuntu 18.04 和 PHP 7.2 上将 Libzip 更新到 1.2
【发布时间】:2018-09-01 16:21:42
【问题描述】:

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

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

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

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

【问题讨论】:

  • sudo apt-get update && sudo apt-get install libzip2 试试这个吧?
  • 不,libzip2 - 无法找到软件包 libzip2,如果我安装 libzip4 - libzip4 已经是最新版本(1.1.2-1.1 )
  • 你试过apt-get install php-zip
  • 是的,但没有帮助 - php-zip 已经是最新版本 (1:7.2+60ubuntu1)

标签: php encryption ubuntu-server ziparchive libzip


【解决方案1】:

(1) 找到更新版本的libzip and libzip-dev on Launchpad。目前它是 The 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

【讨论】:

    猜你喜欢
    • 2018-10-13
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 2020-11-11
    • 2021-07-20
    • 2021-01-20
    相关资源
    最近更新 更多