首先,我尝试了这里找到的两个解决方案:GPG Error Code 2我能做到最好。我不太明白要设置--homedir directory
的内容,所以如果有人可以帮我弄清楚要设置它的话,我也许还可以尝试这种方法。
与此同时,我知道GPG在终端中可以正常工作 - 并且文件按预期创建。这个代码失败了,错误代码为2:
<?php
$file = "/path/to/file.gzp";
system("gpg --encrypt --recipient 'shack' --yes --always-trust " . $file, $returnValue);
?>
有人知道这个问题吗?
答案 0 :(得分:1)
这是许可问题;当php在网络服务器上运行时,它以用户www-data
,nobody
左右执行,而不是root。在运行用户php的情况下配置pgp密钥(您可以使用su www-data
在交互式shell中进行测试)。您可能希望指定--homedir /some/directory
来存储和访问另一个目录中的密钥。