php ssh2_exec 没有执行 java 命令
php ssh2_exec not executing java command
下面的代码无法使用 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
一个问题可能是您正在执行的命令中的分号。
$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 流以查看它是否 returns 错误。
下面的代码无法使用 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
一个问题可能是您正在执行的命令中的分号。
$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 流以查看它是否 returns 错误。