0

以下のコードは、ssh2_exec を使用して Java バージョンを取得できません。絶対パス /usr/bin/java も試しました。同じコードが「php --version」で動作しています。この問題の考えられる理由は何ですか?

/usr/bin/java の chmod 777 は既に実行済み

  $connection = ssh2_connect('xx.xx.xx.xx', 22);
  ssh2_auth_password($connection, $username, $password);

  $stream = ssh2_exec($connection, 'java -version;');
  stream_set_blocking($stream, true);
  $tempVar = stream_get_contents($stream);

  echo $tempVar; // nothing printed here 
4

1 に答える 1

1

1 つの問題は、実行しているコマンドのセミコロンである可能性があります。

$stdout_stream = ssh2_exec($connection, "java -version");

$err_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDERR);

$dio_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDDIO);

stream_set_blocking($err_stream, true);
stream_set_blocking($dio_stream, true);

$result_err = stream_get_contents($err_stream));
$result_dio = stream_get_contents($dio_stream));

stderr ストリームをチェックして、エラーが返されるかどうかを確認します。

于 2016-02-28T09:16:03.113 に答える