2011-08-21 2 views
1

시작하려면 여기에서 찾을 수있는 두 가지 해결책을 시도했습니다. GPG Error Code 2 최선을 다했습니다. 나는 꽤 무엇을 --homedir directory으로 설정해야하는지 이해하지 못한다. 그래서 누군가가 내가 무엇을 설정해야 할지를 이해할 수 있다면 그 방법을 시도해 볼 수있다.GPG를 사용하여 PHP 내의 CHMOD 777 디렉토리에서 .gzip 파일을 암호화 - 오류 코드 2

그동안 GPG가 터미널에서 Root로 잘 작동하며 파일이 예상대로 생성된다는 것을 알고 있습니다. 이 코드는 오류 코드 2와 함께 실패합니다.

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

아무도이 문제를 알고 있습니까?

+0

ls -l /path/to/file.gzp의 출력에 [링크] (http://pastebin.com/)를 게시 할 수 있습니까? 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-data, nobody 또는 그 이상이므로 root가 아닌 사용자로 실행됩니다. 사용자 PHP가 실행중인 pgp 키를 구성하십시오 (대화 형 쉘에서 su www-data으로 테스트 할 수 있습니다). 다른 디렉토리의 키를 저장하고 액세스하려면 --homedir /some/directory을 지정할 수 있습니다.

관련 문제