【发布时间】:2010-01-07 10:35:41
【问题描述】:
我必须在 PHP 脚本中导入 GPG 密钥,它使用命令行工作
gpg --import "/home/me/pubkey.txt"
但使用带有import 方法的PHP gpg 类即使使用gnupg_import 函数也不起作用。
我的配置是:
- 红帽企业 Linux 5
- PHP 5.1.6
- GnuPG 1.4.5
- GPGme 1.1.8
- GPG 扩展 1.3.1
我也尝试使用 PHP 的 exec 或 system 函数,但没有成功,使用相同的命令行(exec('cat "/home/me/pubkey.txt"') 有效,因此文件可读)。
编辑: 它适用于带有 GnuPG 1.4.9、PHP 5.2.6 的 Ubuntu 9.10 服务器。
【问题讨论】:
-
问题是gnupg_geterror()没有给出错误信息。没有 PHP 警告,什么都没有。
-
您是否尝试过 exec 和 system 使用可选的参考参数,以及 print_r 它们的值? gpg 是否在 safe_mode_exec_dir 中可执行?例如。在我的 Ubuntu 上,猫在 /bin/ 中,而 gpg 在 /usr/bin/ 中,请参阅 us.php.net/manual/en/function.exec.php 的注释
-
$output 为空数组,$return_var 为“2”,因此“意外错误”。服务器上的安全模式已关闭。