2010-01-07 126 views
0

我必须在PHP脚本导入GPG键,它的工作原理使用COMMANDE线GPG通过PHP密钥导入不工作(在外壳作品)

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

但使用PHP gpg类不起作用即使使用gnupg_import函数也可以使用import方法。

我的配置是:

  • 红帽企业Linux 5
  • PHP 5.1.6
  • 的GnuPG 1.4.5
  • GPGME 1.1.8
  • GPG扩展1.3.1

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

编辑: 它可以在GnuPG 1.4.9,PHP 5.2.6的Unbuntu 9.10服务器上运行。

+0

什么是错误信息? – 2010-01-07 10:37:24

+0

问题是没有gnupg_geterror()给出的错误消息。没有PHP警告,什么都没有。 – 2010-01-07 10:44:41

+0

您是否尝试过使用可选引用参数执行exec和system,并且print_r它们的值? gpg可执行文件在safe_mode_exec_dir中吗?例如。在我的Ubuntu上的猫在/ bin /中,而gpg在/ usr/bin /中,请参阅http://us.php.net/manual/en/function.exec.php上的注释 – Residuum 2010-01-07 11:11:12

回答

1

Got it! 我是这个问题的人,Fabien在SO上发布了这个问题。

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

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

什么是最佳解决方案?