1

私はこのイントラネット アプリを継承しました。このアプリは、要求されたスプール レポートを解凍し、ユーザーがアクセスできる Samba フォルダーにそれらをダンプします。PHPは次のとおりです。

$command = "$unzip_program $path_spooled/$zip_file $filename -d $target_dir";
$ssh_command = "$ssh_syscommand -i /web/live/sshkey_nopass reportuser@$archive_server \"$command\"";

$sshpipe2 = popen( $ssh_command, 'r' );

したがって、実行中の SSH コマンドをエコーすると、次のようになります。

/usr/bin/ssh -i /web/live/sshkey reportuser@192.168.1.21 "/usr/bin/unzip -c /reports/spooled/2012/jan.zip 01SU7C.RPT" |
/usr/bin/ssh -i /web/live/sshkey reportuser@192.168.1.2 "cat > /reports/spooled/01SU7C.RPT"

(読みやすくするために、パイプの後に改行を挿入しました)

コマンドラインからそのコマンドを実行すると、正常に動作します。PHPから実行すると、エラーなしで失敗します。

私が必要としているのは、どこを見ればよいかを考える手助けだけです。sshキーが欠落している可能性があると思いますが、コマンドが実行されると、サーバーはそのユーザーからのログインを表示します。

私は何が欠けていますか?どこを見ればいいですか?私が知らない解凍について何かありますか?Apache からある種のコンテキストを設定する必要がありますか?

4

0 に答える 0