2015-06-28 96 views
0

我尽我所能在PHP中安装GnuPG扩展,但它不起作用。PHP Gnupg不起作用

我遵循了很多指导,但我没有成功。

这是代码,它总是产生错误:

import failed

$keyring = "/var/www/.gnupg/"; 
putenv("GNUPGHOME=$keyring"); 
$GnuPG = new gnupg(); 
$GnuPG->seterrormode(GNUPG_ERROR_WARNING); 
$PublicData = "key text"; 
$PrivateData = "key text"; 

$PublicKey = $GnuPG->import($PublicData); -->error here 

$PrivateKey = $GnuPG->import($PrivateData); --> error here 

echo 'Public Key : ',$PublicKey['fingerprint'],' & Private Key :',$PrivateKey['fingerprint']; 
  1. 我试图设置GNUPGHOME在apache的主目录位于(/var/www/.gnupg)代码,但它不起作用。

  2. 我给予Apache用户(www-data)文件夹/var/www的权限(777),但它不起作用。

drwxrwxrwx 2 www-data www-data 4096 Jun 27 17:38 . 
drwxr-xr-x 3 root  root  4096 Jun 27 16:56 .. 
-rwxrwxrwx 1 www-data www-data 383 Jun 27 16:50 pubring.gpg 
-rwxrwxrwx 1 www-data www-data 383 Jun 27 16:50 pubring.gpg~ 
-rwxrwxrwx 1 www-data www-data 600 Jun 27 16:50 random_seed 
-rwxrwxrwx 1 www-data www-data 753 Jun 27 16:50 secring.gpg 
-rwxrwxrwx 1 www-data www-data 1280 Jun 27 16:50 trustdb.gpg 
  • Environement

    PHP 5.3.10

    的Ubuntu 12.04

    GPGME版本1.2.0

    GnuPG的扩展版本1.3.6

  • 在这个线程同样的问题:

    PHP gnupg 'import failed'

    回答

    0

    您pubring.gpg和secring.gpg文件的访问权限似乎是正确的。你可能想放弃执行(x),因为这是不需要的。它会发生,文件损坏?也可能希望在strace下运行该程序,以查看它是否确实正在访问这些文件。