通过PHP导入的GPG密钥不起作用(在shell中工作)

时间:2010-01-07 10:35:41

标签: php shell exec gnupg

我必须在PHP脚本中导入GPG密钥,它使用命令行

gpg --import "/home/me/pubkey.txt"

但即使使用gpg函数,也无法使用import方法使用PHP gnupg_import类。

我的配置是:

  • RedHat Enterprise Linux 5
  • PHP 5.1.6
  • GnuPG 1.4.5
  • GPGme 1.1.8
  • GPG extension 1.3.1

我也尝试使用PHP的execsystem函数,但没有成功,使用相同的命令行(exec('cat "/home/me/pubkey.txt"')可以正常工作,因此文件可读)。

修改: 它适用于Ubuntu 9.10服务器,支持GnuPG 1.4.9,PHP 5.2.6。

1 个答案:

答案 0 :(得分:1)

知道了! 我是那个遇到问题的人,Fabien在SO上发布了这个问题。

这是文件权限问题:它试图写入/ root上的.gnupg文件(HOME env var),但PHP无法写入。

我们必须更改此文件的权限,以便PHP可以在其中写入,或将其移动到PHP可写入的目录。

什么是最佳解决方案?