php gnupg = 无法加载警告

php gnupg = 无法加载警告

最终目标:在我的 Mediawiki 扩展中使用 PHP GnuPG 库

我已经安装

  • 具有依赖项的 gpgme
  • 运行 pecl install gnupg = 无错误
  • 将 extension=gnupg.so 添加到我的 php.ini

[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:无法打开共享对象文件:第 0 行未知中没有该文件或目录

我遗漏了什么?谢谢

答案1

解决我的问题的解决方案:

$ 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

相关内容