繁体   English   中英

PHP Gnupg未在phpinfo()中显示为扩展名,我无法在php中使用它

[英]PHP Gnupg is not showing up as an extension in phpinfo() and I can't use it in php

我使用自制软件安装了gnupg和gpgme。 我还链接了这两个文件,并通过运行brew gnupg install和brew gpgme install来确保它们已安装并链接,并得到确认安装和版本的消息。

我已经将gnupg.so文件放在扩展路径中,并且还将extension = gnupg.so添加到了php.ini文件中。

我从infophp页面获得了扩展路径和特定php.ini的路径。 重新启动Mamp之后,我仍然看不到gnupg或gpgme作为phpinfo的扩展,我也不能在我的php代码中使用gnupg。
使用$gpg = new \\gnupg(); 这给我一个错误,说gnupg类不存在。

[Symfony\Component\Debug\Exception\FatalThrowableError]
Class 'gnupg' not found

我尝试了另一种方法:我还从他们的网站上手动下载了gnupg和gpgme,并提取了以下内容

。/配置,

使,

sudo make install,

并且能够再次成功安装,还请确保gnupg.so与phpinfo页面中显示的扩展路径相同,并且还将extension=gnupg.so添加到了phpinfo页面中显示的同一php.ini中(我在php.ini文件中的所有其他扩展名之后添加了extension = gnupg.so)

我在用:

Mac OS High Sierra 10.13.3

PHP 7.1.12

模板4.4.1

gnupg 2.2.5(我使用brew install尝试了此版本)

gnupg 1.4.0(我尝试从gnupg.org下载此版本)

gpgme 1.10.0

我也想知道,在希望解决上述问题后,我是否需要在php文件中包含任何内容才能使用gnupg?

gnupg和gpgme有什么区别? 我是否都需要为了在php中加密文件?

如果我无法解决此问题,还有什么方法可以加密xml文件或包含文本数据的文件? 我需要加密文件和FTP到另一台服务器,然后在那儿解密。

预先感谢大家的帮助

我能够使用Pecl安装GnuPG来解决此问题。 该链接对我也有很大帮助。

运行以下命令以安装库:

  1. 须藤apt-get -y install gcc make autoconf libc-dev pkg-config
  2. 须藤apt-get -y install libgpgme11-dev
  3. sudo pecl安装gnupg
  4. 使用以下命令重新启动服务器:“ service apache2 restart”或“ sudo service phpX.Y-fpm-sp restart”,其中xy是php的major.minor版本。 注意:有多种不同的方法可以重新启动系统,以使更改生效。因此,请根据服务器和php版本,自行研究如何执行此操作。
  5. 正如我在问题中解释的那样,尝试找到正确的php.ini文件以将“ extension = gnupg.so”添加到其中。 最常见的地方是php.ini:
    • /etc/php/7.2/apache2(您可以使用PHP版本而不是7.2)
    • /etc/php/7.2/cli(您可以使用PHP版本而不是7.2)

      更好的方法是从phpinfo()中找出加载扩展的php.ini路径。

现在,使用以下命令验证是否一切正常:

  • “ php -i | grep -i gnup”

如果一切正常,您将看到以下内容:

  • /etc/php7.0-sp/conf.d/gnupg.ini,
    gnupg
    gnupg支持=>已启用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM