我的应用程序曾用于在Amazon Linux服务器上运行在PHP 5.4.34上。我们升级到PHP 5.5.18以使用一些较新的库。现在phpseclib生成错误: 未定义偏移量:5827在/var/www/lib/ShellClient/phpseclib/Math/BigInteger.php线1073在php5.5上运行的Phpseclib
在此应用我经由Net_SSH2登录并执行命令另一亚马逊Linux服务器。
予先从Crypt_RSA和Net_SSH2 下面的代码发出通知在无限循环:
$key = new \Crypt_RSA();
$key->loadKey(file_get_contents([PUBLIC_KEY]));
$ssh = new \Net_SSH2([IP_ADDRESS]], 22);
if(!$ssh->login([USERNAME]], $key)){
return false;
}
$ssh->exec([COMMAND]]);
return true;
的错误是在BigInteger.php在功能_subtract,这是由Net_SSH2使用)。
PHP公告:未定义抵消:5827在/var/www/lib/ShellClient/phpseclib/Math/BigInteger.php上线1073
if ($carry) {
for (; !$x_value[$i]; ++$i) { //1073
$x_value[$i] = MATH_BIGINTEGER_MAX_DIGIT;
}
--$x_value[$i];
}
之前我的应用程序在PHP 5.4.34和登录通过跑NetSSH2正常工作没有任何警告。