Невозможно загрузить динамическую библиотеку 'zip.so' в Centos 7.6.1810 с помощью remi-php72 repo - PullRequest
0 голосов
/ 19 января 2019

У меня проблемы с получением обновления CMS за октябрь:

Не удалось обновить «Класс« ZipArchive »не найден» в строке 51 файла / var / www / html / jdd / htdocs / vendor / october / rain /src / Filesystem / Zip.php

И если я сделаю php -m, я получу следующее предупреждение:

Предупреждение PHP: Запуск PHP: невозможно загрузить динамическую библиотеку 'zip.so' (пробовал: /usr/lib64/php/modules/zip.so (/usr/lib64/php/modules/zip.so: неопределенный символ: zip_libzip_version), /usr/lib64/php/modules/zip.so.so (/usr / lib64 / php / modules / zip.so.so: невозможно открыть общий объектный файл: нет такого файла или каталога)) в Unknown в строке 0

Странная вещь в моем /etc/php.d/ папка, файл zip.ini содержит строку: extension = zip.so.в то время как все остальные файлы .ini в /php.d не имеют расширения ".so" (например, для файла json.ini строка имеет вид: extension = json).Я попытался удалить ".so" из строки расширения zip.ini =, но она все равно не будет работать.

Насколько я знаю, в системе работают только исполняемые файлы x86_64 (как проверитьэто с абсолютной уверенностью - все двоичные файлы отображаются как .x86_64 или .noarch?).

Я пробовал другие версии php: -php 5.4 устанавливает zip.so нормально (он загружается правильно), за исключением того, что в октябре требуется как минимум php 7.0.-php 7.0 до 7.3 все устанавливают zip.so, но расширение по-прежнему не загружается.

Может кто-нибудь помочь?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

У меня та же проблема, и я нашел следующее решение:

  1. Поиск установленных модулей php:

yum list installed | grep php*

Попробуйте найти установленный модуль php-zip:

rpm -ql php72-php-pecl-zip

Вы увидите что-то вроде этого:
/etc/opt/remi/php72/php.d/40-zip.ini
/opt/remi/php72/root/usr/lib64/php/modules/zip.so # <----
/opt/remi/php72/root/usr/share/doc/pecl/zip
Затем просто создайте символическую ссылку на этот файл в каталоге, где php ищет модули по умолчанию:

ln -s /opt/remi/php72/root/usr/lib64/php/modules/zip.so /usr/lib64/php/modules/zip.so

После этого я наконец увидел расширение zip в выводе php -mи теперь можно использовать класс ZipArchive.

Также вам, вероятно, следует перезапустить службу httpd.

0 голосов
/ 20 января 2019

Пожалуйста, убедитесь, что вы используете последнюю версию libzip5 1.5.1 из remi-safe репозитория (который является обязательным и включен по умолчанию)

...