PHP modules have been installed, but they are still listed as missing? [Решено]

Изображение пользователя rosenrot.

После очередной перезагрузки (включения компа), заходя в nextcloud через вэбморду, вижу:

PHP module zip not installed.

Please ask your server administrator to install the module.
PHP modules have been installed, but they are still listed as missing?

Please ask your server administrator to restart the web server.

Модуль php5.6-zip установлен.
Не помогает даже полная переустановка пакета, что в основном и советуют на разных форумах.
Что надо сделать чтоб он увидел таки этот модуль (который буквально вчера еще видел и работал)?

+1
MacLeod - 16 Июнь, 2017 - 19:30
Изображение пользователя MacLeod.

Кто он?))

0
rosenrot - 16 Июнь, 2017 - 19:38
Изображение пользователя rosenrot.

nextcloud или php, кто там из них не видит модуль php-zip.

Еще вот что говорит:
~$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20131226/zip.so' - libzip.so.4: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.6.30-12~ubuntu16.04.1+deb.sury.org+1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

+1
MacLeod - 16 Июнь, 2017 - 19:39
Изображение пользователя MacLeod.

Я дал очень хороший наводящий вопрос - разберитесь, кто именно не видит. Пока верного ответа не было)

0
rosenrot - 16 Июнь, 2017 - 19:41
Изображение пользователя rosenrot.

Знать бы еще как)
Судя по выхлопу чуть выше, делаю предположение что именно php и не видит свой модуль.
Но /usr/lib/php/20131226/zip.so лежит на месте.

+3
MacLeod - 17 Июнь, 2017 - 01:12
Изображение пользователя MacLeod.

zip.so - это динамически линкуемая библиотека (такая, как dll в винде). И когда бинарик ее загружает для использования, она, в свою очередь, может загружать также другие so-библиотеки. И когда это сделать не удается, основной бинарик говорит, что загрузить либу с зафейленной зависимостью не удалось.
Смотрим зависимости:
root@maximus:~# ldd /usr/lib/php/20151012/zip.so
        linux-vdso.so.1 =>  (0x00007ffcb316c000)
        libzip.so.4 => not found
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3be4d42000)
        /lib64/ld-linux-x86-64.so.2 (0x000056471f2a9000)

Опаньки, libzip нет. Но как же так, ведь apt должен был установить зависимости... Ищем пакет, в котором должен быть libzip.so.4:
max@maximus:~$ apt-file search libzip.so.4
libzip4: /usr/lib/x86_64-linux-gnu/libzip.so.4
libzip4: /usr/lib/x86_64-linux-gnu/libzip.so.4.0.0

Но вот какая досада, libzip4 же установлен! Смотрим файлы:
root@maximus:~# dpkg --listfiles libzip4
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libzip4
/usr/share/doc/libzip4/copyright
/usr/share/doc/libzip4/changelog.Debian.gz
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libzip.so.5.0.0
/usr/lib/x86_64-linux-gnu/libzip.so.5

Ага... Дядька Риддел ошибся малость и засунул либу пятой версии. Или тупо поленился собирать отдельный пакет. Короче, кто не понял - это мейнтейнерская ошибка в репе неона.
Варианта два: просить дядьку Джона все исправить или сделать костыль:
ln -s /usr/lib/x86_64-linux-gnu/libzip.so.5.0.0 /usr/lib/x86_64-linux-gnu/libzip.so.4

0
rosenrot - 17 Июнь, 2017 - 12:10
Изображение пользователя rosenrot.

Большое спасибо!
Все так и ессть, правда у меня подключен сторонний реп с php и я уж было начал на него грешить. Снес его вчера, а не тут то было.
Надеюсь дядька Риддел поправит в будущем. А пока слинковал и все заработало.
Еще раз спасибо!

+1
Гость - 18 Июнь, 2017 - 11:27

Для тех кто пришёл суда в поисках ошибки вида
попытка перезаписать «/usr/lib/x86_64-linux-gnu/libzip.so.5.0.0», который уже имеется в пакете libzip4:amd64 1.2.0-0neon+16.04+xenial+build3

Это баг в неоне, вот там инструкция как решить:
https://bugs.kde.org/show_bug.cgi?id=381183#c7

+2
MacLeod - 21 Июнь, 2017 - 01:27
Изображение пользователя MacLeod.

Более не актуально, дядька Риддел все поправил =)

0
rosenrot - 21 Июнь, 2017 - 21:01
Изображение пользователя rosenrot.

Отлично!

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры