我使用自制软件安装了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
我也想知道,在希望解决上述问题之后,为了使用gnupg,我是否需要在PHP文件中包含任何内容?
gnupg和gpgme有什么区别?我是否都需要两个文件才能在php中加密文件?
如果无法解决此问题,还有什么方法可以加密xml文件或包含文本数据的文件?我需要加密文件和FTP到另一台服务器,然后在那儿解密。
谢谢大家的帮助
我能够使用Pecl安装GnuPG来解决此问题。This link helped me a lot as well.
运行以下命令以安装库: