gpt4 book ai didi

php - 从 PHP 使用 gnupg 时出现问题(Apache 失败,CLI OK)

转载 作者:行者123 更新时间:2023-12-05 07:56:41 25 4
gpt4 key购买 nike

我在 OSX 10.8.5 上使用 MAMP 2.2、PHP 5.3.5。最近设置gpgme,gnupg。必须解决问题才能下载和构建依赖项,但相信一切都已安装好。还安装了 GPGTools。

我写了两个相当简单的 PHP 脚本,一个将导入在别处生成的公钥,另一个列出 key 环中的 key 。 key 环位置是/Users/myuser/.gnupg

MAMP Apache 配置为以我 (myuser) 身份运行。当我使用 PHP CLI 执行我的任一脚本时,运行正常并按预期工作。当我在 Apache 中执行时,它们会运行,值 var_dumped & echo'd 看起来都正确,但 gnupg->import() 只会记录“导入失败”,gnupg->keyinfo() 说“无法初始化 key 列表”。

我已经尝试在 .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();

}

我是否漏掉了一些明显的东西?

最佳答案

这里的问题是 apache 使用不同的用户(对于 ubuntu 它是 www-data,但我不确定 OSX)并且 .gnupg 文件夹只能由所有者访问(chmod 600)。这就是为什么 cli 有效(因为您以所有者身份登录)而 apache 无效(因为 apache 用户不是 .gnupg 目录的所有者)。

请为 apache 用户设置/home 文件夹,然后生成它自己的一对 gnupg key 。一旦 apache 拥有自己的 key ,并且您在设置 GNUPGHOME 环境变量时指向 apache 的文件夹,它就会正常工作。

关于php - 从 PHP 使用 gnupg 时出现问题(Apache 失败,CLI OK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28329486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com