我正在使用MAMP 2.2,PHP 5.3.5,在OSX 10.8.5上。最近安装了gpgme、gnupg,需要处理下载和构建依赖关系的问题,但我相信一切都已经安装好了。同时也安装了GPGTools。
我编写了两个相当简单的PHP脚本,一个用于导入在其他地方生成的公钥,另一个用于列出密钥环中的密钥。密钥环的位置是/Users/myuser/.gnupg。
MAMP Apache被配置为以我(myuser)的身份运行。当我使用PHP CLI执行我的任一脚本时,它们都能够正常运行并按预期工作。但当我在Apache中执行时,它们运行,var_dumped和echo’d的值都看起来正确,但gnupg->import()仅记录“导入失败”,而gnupg->keyinfo()则显示“无法初始化密钥列表”。
我尝试设置尽可能开放的权限在.gnupg目录和其内容上,但并没有成功。
列出密钥的代码:
我编写了两个相当简单的PHP脚本,一个用于导入在其他地方生成的公钥,另一个用于列出密钥环中的密钥。密钥环的位置是/Users/myuser/.gnupg。
MAMP Apache被配置为以我(myuser)的身份运行。当我使用PHP CLI执行我的任一脚本时,它们都能够正常运行并按预期工作。但当我在Apache中执行时,它们运行,var_dumped和echo’d的值都看起来正确,但gnupg->import()仅记录“导入失败”,而gnupg->keyinfo()则显示“无法初始化密钥列表”。
我尝试设置尽可能开放的权限在.gnupg目录和其内容上,但并没有成功。
列出密钥的代码:
<?php
error_reporting(-1);
// set path to keyring directory
putenv('GNUPGHOME=/Users/myuser/.gnupg');
var_dump(getenv('GNUPGHOME'));
echo exec('whoami');
echo is_dir('/Users/myuser/.gnupg');
echo '<br/>';
$gpg = new gnupg();
$gpg->seterrormode(GNUPG_ERROR_WARNING);
try {
$info = $gpg->keyinfo('');
print_r($info);
} catch (Exception $e) {
echo 'ERROR: ' . $e->getMessage();
}
我有什么明显的遗漏吗?