Как обновить Libzip до 1.2 на Ubuntu 18.04 и PHP 7.2 - PullRequest
0 голосов
/ 01 сентября 2018

Я хочу использовать ZipArchive :: setEncryptionName на сервере Ubuntu 18.04.1 с PHP 7.2.7

Проблема в том, что для setEncryptionName необходима версия Libzip как минимум 1.2

конфигурация по умолчанию из PHP info:
Zip версия 1.15.2
Libzip версия 1.1.2

Я не знаю, как обновить Libzip на сервере Ubuntu, у меня нет этой проблемы на Win и Mac.

1 Ответ

0 голосов
/ 30 ноября 2018

(1) Найдите более новую версию libzip и libzip-dev на Launchpad . В настоящее время это 1.5.1 под Eoan Ermine. Загрузите правильные файлы 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 до более новой версии. Также установите php-dev, необходимый PECL для сборки 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) Смотрите phpinfo (), если у вас правильная версия libzip. Возможно, вам придется перезапустить ваш веб-сервер.

(7) Вы можете запретить apt автоматически обновлять ваш php-zip, нарушая вашу пользовательскую установку. Но тогда вы должны не забыть вручную обновить php с помощью pecl или проверить, поддерживает ли более новая версия более новую версию 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
...