dongzhiji0814 2016-02-28 09:06
浏览 70
已采纳

php ssh2_exec没有执行java命令

Below code is not able to get the Java version using ssh2_exec, I have tried absolute path /usr/bin/java as well, same code is working with 'php --version', what could the possible reason for this issue?

Already done chmod 777 for /usr/bin/java

  $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 
  • 写回答

1条回答 默认 最新

  • douxuanjie2692 2016-02-28 09:16
    关注

    One issue could be the semi-colon on the command you are executing.

    $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));
    

    Check the stderr stream to see if it returns an error.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?