Конечная цель: использовать библиотеку PHP GnuPG в моем расширении Mediawiki
Я установил
:
[root@dev-lamp01]# locate gnupg.so
/usr/lib64/php/modules/gnupg.so
[root@dev-lamp01]# file /usr/lib64/php/modules/gnupg.so
/usr/lib64/php/modules/gnupg.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
[root@dev-lamp01]# locate libgpgme.so.11
/usr/local/lib/libgpgme.so.11
/usr/local/lib/libgpgme.so.11.8.1
[root@dev-lamp01]# file /usr/local/lib/libgpgme.so.11
/usr/local/lib/libgpgme.so.11: symbolic link to `libgpgme.so.11.8.1'
[root@dev-lamp01]# file /usr/local/lib/libgpgme.so.11.8.1
/usr/local/lib/libgpgme.so.11.8.1: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
все же:
Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib64/php/modules/gnupg.so' - libgpgme.so.11: невозможно открыть файл общих объектов: нет такого файла или каталога в Unknown в строке 0
что мне не хватает? Спасибо
Решение, которое устранило проблему в моем случае:
$ php -r 'var_dump(function_exists("gnupg_decrypt"));';
PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/gnupg.so' - **libgpgme.so.11: cannot open shared object file**: No such file or directory in Unknown on line 0
bool(false)
$ ldd /usr/lib/php5/20100525/gnupg.so
linux-vdso.so.1 => (0x00007fff715ff000)
**libgpgme.so.11 => not found**
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f087c815000)
/lib64/ld-linux-x86-64.so.2 (0x00007f087cdea000)
Похоже, сервер не загружает библиотеки из /usr/local/lib
папка. Чтобы решить эту проблему, просто добавьте /usr/local/lib
к /etc/ld.so.conf
или / и запустить ldconfig
.