リモートホストからの応答を実行して返そうとしていますがssh2_exec
、これを行う適切な方法がわかりません。私は他の人が推奨したものに基づいてこの関数を一緒に使用しましたが、関数は に到達すると常にハングしstream_get_contents($errorStream);
ます。
私が実行しているコマンドはls -l
非常に迅速に実行されるはずです。
public function exec($command)
{
$stream = ssh2_exec($this->ssh, $command);
if (! $stream) {
throw new exception('Could not open shell exec stream');
}
$errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
stream_set_blocking($errorStream, true);
stream_set_blocking($stream, true);
$err = stream_get_contents($errorStream);
$response = stream_get_contents($stream);
@fclose($errorStream);
@fclose($stream);
if ($err) {
throw new exception($err);
}
return $response;
}