ファイルを暗号化するために gpg を呼び出している exec() コマンドと組み合わせて使用すると、session_start() コマンドと不可解な競合が発生します。
$output = exec("gpg --batch --passphrase asdf --symmetric --output ../files/test/uploads/smalltext.txt.gpg ../files/test/uploads/smalltext.txt 2>&1" ,$test);
print_r($test);
exit;
上記のこのコードは機能します
session_start();
$output = exec("gpg --batch --passphrase asdf --symmetric --output ../files/test/uploads/smalltext.txt.gpg ../files/test/uploads/smalltext.txt 2>&1" ,$test);
print_r($test);
exit;
このコードは機能しません。
gpg: ../files/test/uploads/smalltext.txt を開けません
gpg: ../files/test/uploads/smalltext.txt の対称暗号化に失敗しました: そのようなファイルまたはディレクトリはありません
現在、私が持っている唯一の回避策は、session_destroy(); を呼び出すことです。$_SESSION = array(); も設定します。したがって、それをリセットし、exec を呼び出してから、すべてのセッション情報を再設定します。