превышено максимальное время выполнения программы phpseclib

В настоящее время я использую laravel (который использует phpseclib) для моего проекта и имел проблемы с подключением ssh, получив ошибку. Maximum execution time of 60 seconds exceeded теперь. Я знаю, что это значение может быть расширено, но мне не нужно будет запускать простая команда ls .

он, кажется, терпит неудачу в этом классе phpseclib/Math/BigInteger.php

Я пробовал каждый пример в документации phpseclib , я все равно получаю те же ошибки.

Я также попытался использовать exec("ssh -i /path/to/key user@host ls", $out, $code); и я могу подключиться просто отлично.

Я также тестировал fsock и никаких ошибок не возвращал, поэтому все выглядит хорошо.

  $fsock = fsockopen('server', 22); echo fgets($fsock, 1024); 

любые идеи о том, почему это происходит?

Solutions Collecting From Web of "превышено максимальное время выполнения программы phpseclib"

Я решил это, оказалось, что версия библиотеки openssl и версия заголовка не совпадают, это заставляет phpseclib использовать более медленную библиотеку, которая затем вызывает таймаут. как временное исправление, я изменил следующее.

Вот:

начиная с строки 256

из этого :

  switch (true) { case !isset($versions['Header']): case !isset($versions['Library']): case $versions['Header'] == $versions['Library']: define('MATH_BIGINTEGER_OPENSSL_ENABLED', true); break; default: define('MATH_BIGINTEGER_OPENSSL_DISABLE', true); } 

к этому:

  switch (true) { case !isset($versions['Header']): case !isset($versions['Library']): case $versions['Header'] == $versions['Library']: define('MATH_BIGINTEGER_OPENSSL_ENABLED', true); break; default: define('MATH_BIGINTEGER_OPENSSL_ENABLE', true); }