У меня был стек LAMP с libsodium, работающий нормально на Ubuntu 15.x, но после обновления до 16.04 PHP и libsodium не работают вместе
$> php -dextension=libsodium.so -r 'echo "foo";'
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/libsodium.so' - /usr/lib/php/20151012/libsodium.so: cannot open shared object file: No such file or directory in Unknown on line 0
Обратите внимание, что число в пути здесь не соответствует 20151012
$> find /usr/lib | grep sodium
/usr/lib/php5/20131226/libsodium.so
Удалить и переустановить может быть?
$> apt-get purge 'libsodium*
[ok]
$> dpkg --get-selections | grep sodium
[no output]
$> find /usr/lib | grep sodium
/usr/lib/php5/20131226/libsodium.so
Эта библиотека, похоже, застряла.
$> apt-get install libsodium-dev libsodium18
[ok]
$> find /usr -type l -ls | grep sodium
393054 0 lrwxrwxrwx 1 root root 34 Feb 6 2016 /usr/share/doc/libsodium-dev/changelog.Debian.gz -> ../libsodium18/changelog.Debian.gz
132064 0 lrwxrwxrwx 1 root root 19 Feb 6 2016 /usr/lib/x86_64-linux-gnu/libsodium.so -> libsodium.so.18.0.1
132056 0 lrwxrwxrwx 1 root root 19 Feb 6 2016 /usr/lib/x86_64-linux-gnu/libsodium.so.18 -> libsodium.so.18.0.1
$> find /usr/lib | grep sodium
/usr/lib/x86_64-linux-gnu/libsodium.so
/usr/lib/x86_64-linux-gnu/libsodium.a
/usr/lib/x86_64-linux-gnu/libsodium.so.18
/usr/lib/x86_64-linux-gnu/libsodium.so.18.0.1
/usr/lib/x86_64-linux-gnu/pkgconfig/libsodium.pc
/usr/lib/php5/20131226/libsodium.so
Но после этого ошибка PHP остается прежней. Поиск файлов и ссылок для чтения в /etc
и /usr
не объяснил мне, почему PHP хочет путь, содержащий 20151012
(дата YMD?)
Почему PHP застрял, ища неправильный путь для libsodium?