2014-05-20 2 views
1

현재 내 프로젝트에 laravel (phpseclib 사용)을 사용하고 있는데 ssh 연결에 문제가있어서 Maximum execution time of 60 seconds exceeded 오류가 발생했습니다.이 값은 확장 될 수 있지만 순서대로해서는 안됩니다. 간단한 ls 명령을 실행하십시오.phpseclib가 최대 실행 시간을 초과했습니다

는이 클래스 나는 phpseclib documentation의 모든 예제를 시도 phpseclib/Math/BigInteger.php

, 난 여전히 같은 오류가 점점 오전에 실패한 것으로 보인다.

나는 또한 사용해 보았습니다. exec("ssh -i /path/to/key [email protected] ls", $out, $code);잘 연결할 수 있습니다.

나는 또한 fsock을 테스트했지만 오류는 반환되지 않으므로 모든 것이 잘 보입니다.

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

왜 이런 일이 발생했는지에 대한 아이디어가 있습니까?

+0

뭔가를 보여줄 것이다 -v option.It을 추가하여 디버그 SSH를보십시오 유용한'exec ("ssh -v -i/path/to key user @ host ls", $ out, $ code); ' – Harikrishnan

+0

그 방법으로 연결할 수 있습니다 ... phpseclib 라이브러리를 사용하여 연결할 수 없습니다 – arrowill12

답변

0

나는 이것을 풀어 냈습니다. 오픈 셀 라이브러리 버전과 헤더 버전이 일치하지 않아 phpseclib가 더 느린 라이브러리를 사용하게되어 타임 아웃이 발생합니다. 임시 수정으로 다음을 수정했습니다.

here:

이에서 라인 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); 
     } 
+0

OpenSSL 버전이 일치하지 않으면 OpenSSL이 http://stackoverflow.com/q/16628102에 따라 충돌 할 수 있기 때문에 추가되었습니다./569976. phpinfo() 사본을 게시 할 수 있습니까? 특히, 나는 (1) 내부 모드를 사용하고 있는지, 그리고 int (int)가 http://stackoverflow.com/a/23608651/569976에 해당하는지 (2) 궁금합니다. 물론 타임 아웃이 정말 낮을 수도 있습니다. 정말로, http://phpseclib.sourceforge.net/math/intro.html에 따라 속도를 높이는 가장 좋은 방법은 gmp를 사용하는 것입니다. – neubert

+0

커미션을 통해 문제가 해결되었지만 OPenssl을 사용할 때보 다 훨씬 느립니다. – arrowill12

+0

그건 놀랄 일이 아닙니다. phpseclib은 순수한 PHP 모드를 절대적인 수단으로 사용합니다. Linux를 사용하고 있기 때문에 OpenSSL 충돌 문제가 XAMPP 사용자에게만 영향을 미치고있는 것 같지만 phpseclib 제작자가 OS가 Windows IDk 일 때만 검사가 수행되도록 설정할 수 있습니다. – neubert

관련 문제