Я работаю над одним проектом, который требует от меня выполнения некоторых команд на удаленном сервере.Я использую Laravel 5.5 с именем пакета "laravelcollective / remote", который использует SSH2 для соединения с удаленным сервером.
Однако у меня возникают некоторые действительно странные проблемы с некоторыми серверами.На некоторых серверах появляется следующее сообщение об ошибке.
production.ERROR: Соединение преждевременно закрыто {"исключение": "[объект] (ErrorException (код: 0): Соединение преждевременно закрыто в /home / username / имя_приложения / public_html / vendor / phpseclib / phpseclib / phpseclib / Net / SSH2.php: 3821, RuntimeException (код: 0): невозможно подключиться к удаленному серверу. at / home / username / application_name / public_html / vendor /laravelcollective / remote / src / Connection.php: 143)
Я использую блок try-catch
для перехвата исключений, но я не могу перехватить это исключение. Все другие исключения, такие как connection timed out
, перехватываютсяблоком try-catch, кроме этого.
Я использую блок try catch следующим образом:
try {
$commands = array('sudo apt-get update','sudo apt-get upgrade -y');
SSH::run($commands);
} catch (\Exception $e){
report($e);
}
Но блок try-catch перестает работать с этой ошибкой connection closed prematurely
. IНе знаете, если я что-то упустил или есть какая-то ошибка в библиотеке, кто-нибудь сталкивался с такой же проблемой раньше? Как я могу правильно отловить эту ошибку?