2011-08-21 64 views
1

首先,我尝试了这里找到的两个解决方案:GPG Error Code 2尽我所能。我不太明白为--homedir directory设置什么,所以也许我仍然可以尝试该方法,前提是有人可以帮助我找出要设置的方法。使用GPG加密PHP中CHMOD 777目录中的.gzip文件 - 错误代码2

与此同时,我知道GPG在终端中能够正常工作 - 并且按预期创建文件。这是错误代码2失败的代码:

<?php 
$file = "/path/to/file.gzp"; 
system("gpg --encrypt --recipient 'shack' --yes --always-trust " . $file, $returnValue); 
?> 

有人知道这个问题吗?

+0

您可以将[链接](http://pastebin.com/)发布到'ls -l /path/to/file.gzp; strace php gpg-encrypt.php'? – phihag

+0

你可以像这样重定向输出:'sh -c'ls -l /path/to/file.gzp; strace php gpg-encrypt.php'>文件上传2>&1'。请注意,这期望上面的php文件在当前目录中为'gpg-encrypt.php',所以用其真实名称替换它的名称。 – phihag

+0

这里你走了,对不起,我没有得到它! http://pastebin.com/GU9fsx6V – Shackrock

回答

1

这是一个权限问题;当php运行在网络服务器上时,它以用户www-datanobody左右的方式执行,而不是根。配置用户php运行的pgp密钥(您可以在交互式shell中使用su www-data进行测试)。您可能需要指定--homedir /some/directory来存储和访问另一个目录中的密钥。