我已经在 SO 中问过这个问题,但也许这里更适合问。我通过 Pecl 安装了 GnuPG。生成 pub/priv 密钥等。我有php.ini
extension=gnupg.so
当我尝试运行简单的代码时,我遇到了未定义的 gnupg_init() 错误,据我所知,这意味着未加载模块。
Fatal error: Uncaught Error: Call to undefined function gnupg_init()
这是我试图运行的代码
putenv('GNUPGHOME=/home/stan/.gnupg');
$res = gnupg_init();
gnupg_seterrormode($res,GNUPG_ERROR_WARNING);
gnupg_addencryptkey($res,"myfingerprint");
$enc = gnupg_encrypt($res, "just a test");
echo $enc;
系统是ubuntu + apache。这里是权限.gnupg/
srwxrwxr-x 1 stan stan 0 Aug 16 08:12 S.gpg-agent
-rw------- 1 stan stan 32 Aug 16 10:02 pubring.kbx~
drwx------ 2 stan stan 4096 Aug 16 10:04 private-keys-v1.d
-rw-rw-r-- 1 stan stan 1361 Aug 16 10:04 pubring.kbx
drwx------ 2 stan stan 4096 Aug 16 10:04 openpgp-revocs.d
-rw------- 1 stan stan 2603 Aug 16 10:19 secring.gpg
-rw------- 1 stan stan 1209 Aug 16 10:19 pubring.gpg~
-rw------- 1 stan stan 1360 Aug 16 10:19 trustdb.gpg
-rw------- 1 stan stan 600 Aug 16 10:19 random_seed
-rw------- 1 stan stan 1209 Aug 16 10:19 pubring.gpg
这是我的 /var/www/
drwxrwsr-x 3 stan www-data 4096 Jul 14 11:23 www
drwxr-sr-x 7 stan www-data 4096 Aug 16 09:59 html
我还确认已安装并加载
$ php --info | grep gnupg
gnupg
gnupg support => enabled