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

У меня проблемы с получением октябрьской 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: невозможно открыть общий объектный файл: такой файл или каталог отсутствуют)) в поле "Неизвестно" в строке 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, но расширение все равно не загружается.

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

1 ответ

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

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

yum list installed | grep php*

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

rpm -ql php72-php-pecl-zip

  1. Вы увидите что-то вроде этого:
/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
  1. Затем просто создайте символическую ссылку на этот файл в каталоге, где php ищет модули по умолчанию:

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

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

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

1 - Загрузите вручную последнюю ZIP-библиотеку pecl по адресу https://pecl.php.net/package/zip

2 - Установите его с помощью pecl в загруженный файл

sudo pecl install zip-1.19.1.tgz

3 Включите zip на php.ini

extension=zip

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

Другие вопросы по тегам