2014-05-19 46 views
2

我正在嘗試在laravel中使用Remote ssh功能。我一直收到「超過60秒的最大執行時間」我知道我可以設置這個超時時間,但問題是不應該花這麼長時間來做一個lslaravel SSH超出執行時間

我能夠運行以下

exec("ssh -i /path/to/key [email protected] ls", $out, $code);

沒有問題,所以這不是防火牆問題。

,但我無法運行此:

SSH::run(array(
      'ls' 
     ), function($line) { 
    echo $line . PHP_EOL; 
    }); 

我不知道爲什麼,這是掛在超時。

我也想知道是否有指定ssh -o選擇的方式,因爲對於一些我可能需要指定StrictHostKeyChecking=no

+0

你確定你的'應用程序/配置/ remote.php'是正確? – Sam

+0

是的,我已經嘗試了一個鍵,沒有密鑰和密碼 – arrowill12

回答

0

我已經解決了這一點,事實證明我的OpenSSL庫版本和頭版本沒有匹配,這會導致phpseclib(laravel連接的方式)使用較慢的庫,這會導致超時。作爲臨時修復,我修改了以下內容。

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); 
     }