우리에게 전송되고 있지만 작동시키지 못하는 파일의 암호를 해독하려면 gnupg_decrypt
을 사용해야합니다.PHP의 GnuPG keyinfo 함수가 비어있는 배열을 보여줍니다.
gnupg_keyinfo
을 사용하여 모든 공개 키를 나열하면 빈 배열이 반환됩니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까?
내가 사용하고있는 코드는 다음과 같습니다
$res = gnupg_init();
$info = gnupg_keyinfo($res, '');
print_r($info);
가 모든 키를 나열해야 패턴으로
''
을 넣어 위의 링크의 의견을 찾고.
여기 http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/gpg-cs.html
를 제공하는 정보를 사용하여 내 서버에 공개 키를 설정 한 내가 GPG --list-키를 실행할 때 성공적으로 생성되는로 보여줍니다.
나는 당신이 일을하지만, 해당 폴더의 키에 대한 참조가 없기 위해서는 페이지 상단에
putenv('GNUPGHOME=/tmp');
을 넣어야 할 어딘가에 읽고 난 찾을 수 없습니다 위와 함께 설정할 위치.
또한 키가 저장된 폴더에 대한 권한이 없을 수도 있지만 다시 위치가 확실하지 않습니다.
아무도 도와 드릴 수 있습니까?
감사합니다그 후 다음 gnupg_import
기능을 사용하여 키를 다시 가져온 chmod 600 ~/.gnupg/*
chmod 700 ~/.gnupg
chown -R {{user}} ~/.gnupg
다음 내가 한이 작업을 얻으려면
'ls -al ~/.gnupg /'. 웹 서버에서 디렉토리 및 파일에 액세스 할 수 있는지 확인하십시오. 명령 행에서 스크립트를 시험해 보는 것이 좋습니다. 이는 사용 권한 문제인지 판단하는 데 도움이됩니다. 'php -r '과 같은 것 print_r (gnupg_keyinfo (gnupg_init(),' '));' ' – bishop
안녕하세요 주교님, 답장을 보내 주셔서 감사합니다. 내가 커맨드 라인에서 스크립트를 실행하고 그것은 내가 사용 권한 문제 (법에 감사드립니다) 밖으로 규칙을 추측 했어. ls -al ~/.gnupg /에서 반환되는 스크린 샷을 게시했습니다. 나 한테 괜찮아 보이는 군, 너 한테 그런가? r과 w는 읽기 및 쓰기가 정확합니까? –
사실, 명령 행에서 * 성공하고 * 웹 서버에서 * 실패 *한다는 것은 허가 문제이기 때문입니다. 스크린 샷은 이러한 파일이 루트가 소유하고 있으며 웹 서버가 루트로 실행되지 않는다고 표시합니다. 이 파일의 소유권을 웹 서버의 소유권으로 변경해야합니다. 'chown -R apache ~/.gnupg'와 같은 것입니다. 웹 서버 사용자에게'ps aux | egrep '(아파치 | httpd)''. – bishop