Я пытаюсь запустить 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; }