我目前正在使用laravel(使用phpseclib)进行我的项目,并且遇到了ssh连接问题,现在收到错误Maximum execution time of 60 seconds exceeded
我知道这个值可以扩展但我不应该为了运行一个简单的ls
命令。
这个班级phpseclib/Math/BigInteger.php
我已尝试phpseclib documentation中的每个示例,我仍然遇到相同的错误。
我也尝试过使用exec("ssh -i /path/to/key user@host ls", $out, $code);
和我能够很好地连接。
我还测试fsock
并且没有返回任何错误,所以一切看起来都不错。
$fsock = fsockopen('server', 22);
echo fgets($fsock, 1024);
关于为什么会发生这种情况的任何想法?
答案 0 :(得分:0)
我已经解决了这个问题,但事实证明我的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);
}