2

http://devzone.zend.com/1278/using-gnupg-with-php/に触発され、@ PHP ASCII Armored PGP 暗号化文字列の助けを借りて

CLI で実行しているときに、サードパーティの公開鍵を使用して文字列を GnuPG 暗号化できました。

  • GNUPGHOME を誰でも読み取り可能な場所に設定する
  • chmodキーリングファイルを666に
  • cli php は文字列を問題なく暗号化します

PHP 5.2.10 (cli) (built: Nov 13 2009 11:44:05)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

しかし...

Web サーバー (CentOS 上の Apache) を介して同じスクリプトを実行しているaddencryptkeyを呼び出すと、「exit signal Segmentation fault (11)」が表示されます。

Apacheエラーログ

[notice] child pid 30682 exit signal Segmentation fault (11)

syslogには何も価値がありません...

ポインタはありますか?ありがとう!


コード(地球を粉砕するものは何もありません):

// GnuPG code
putenv("GNUPGHOME=/opt/.gnupg/");

$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION); 
$gpg -> setarmor(1);

try 
{
    $info = $gpg -> addencryptkey("KEY");
    var_dump($info);
    $enc = $gpg -> encrypt($token);
    var_dump($enc);
} 
catch (Exception $e) {
    echo 'ERROR: ' . $e->getMessage();
}

drwxr-xr-x  2 root root  4096 Jan 14 11:29 .gnupg

[root@dev-lamp01 opt]# ll .gnupg/
total 28
-rw-rw-rw- 1 root root 9224 Jan 14 10:23 gpg.conf
-rw-rw-rw- 1 root root  325 Jan 14 10:25 pubring.gpg
-rw-rw-rw- 1 root root    0 Jan 14 10:20 pubring.gpg~
-rw-rw-rw- 1 root root  600 Jan 14 11:29 random_seed
-rw-rw-rw- 1 root root    0 Jan 14 10:20 secring.gpg
-rw-rw-rw- 1 root root 1200 Jan 14 10:25 trustdb.gpg
4

1 に答える 1

1

ああ、私のせいです - 私がやったとたんに

chmod -R 777 

私のGNUPGHOMEで-すべてうまくいきました

666に満足していると思いました(そしてCLIはrwだけで満足していました)

于 2013-01-14T17:58:34.327 に答える