我的應用程序曾用於在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正常工作沒有任何警告。