GPG通过PHP密钥导入不工作(在外壳作品)
问题描述:
我必须在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
我也试过使用exec
或system
的PHP函数,但没有成功,使用相同的命令行(exec('cat "/home/me/pubkey.txt"')
工作,因此文件是可读的)。
编辑: 它可以在GnuPG 1.4.9,PHP 5.2.6的Unbuntu 9.10服务器上运行。
答
Got it! 我是这个问题的人,Fabien在SO上发布了这个问题。
这是一个文件权限问题:它试图在/ root(HOME env var)上的.gnupg文件中写入,但PHP无法写入它。
我们必须更改此文件的权限,以便PHP可以在其中写入或将其移至PHP可写的目录。
什么是最佳解决方案?
什么是错误信息? – 2010-01-07 10:37:24
问题是没有gnupg_geterror()给出的错误消息。没有PHP警告,什么都没有。 – 2010-01-07 10:44:41
您是否尝试过使用可选引用参数执行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