运行在PHP 5.2.13上可以很好地工作:
每一行输出都显示..。
include('includes/Net/SSH2.php');
$ssh = new Net_SSH2('127.0.0.1');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
function packet_handler($str)
{
echo $str;
}
$ssh->exec('ping 127.0.0.1', 'packet_handler');在PHP5.3.17上运行相同的代码,什么也不返回。
我得用这样的方法
echo $ssh->exec('timeout 5 ping 127.0.0.1');等它停下来。
知道为什么这个新版本行不通吗?
谢谢
发布于 2015-06-27 16:52:22
尝试使用新的NET_SSH2版本。我使用了composer,您的代码对我很好(我在本地PC上有PHP5.6)。我的步骤是:
1)我创建了新的空文件夹
2) Run composer:
作曲家需要"phpseclib/phpseclib“
这将创建vendor文件夹,NET_SSH2版本= 0.3.9
3)然后我更改了您的源代码(用于composer autoload):
require 'vendor/autoload.php';
$ssh = new Net_SSH2('127.0.0.1');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
function packet_handler($str) {
echo $str;
}
$ssh->exec('ping 127.0.0.1', 'packet_handler');一切都很好。我认为您有这个问题,因为您正在使用旧的库版本。您可以尝试使用composer,也可以从GitHub下载新的库版本。
我希望这会有所帮助。
https://stackoverflow.com/questions/31077739
复制相似问题