【问题标题】:phpseclib return no result even on simple command即使在简单的命令下,phpseclib 也不会返回任何结果
【发布时间】:2014-12-08 11:17:48
【问题描述】:

我想通过 php 添加 ssh 用户。所以我尝试了phpseclib。不幸的是,该脚本没有返回任何用户创建的任何结果。然后我试着做一个简单的命令ls -la。仍然没有结果,只是加载几秒钟并返回一个空白页面。

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');  
include('Net/SSH2.php');

$ssh = new Net_SSH2('xxx.xxx.xxx.xxx'); 
if (!$ssh->login('root', 'abc123')) { 
 exit('Login Failed'); 
 echo $ssh->exec('ls -la');
}

我使用 PHP 5.3.3 和 Centos 6.5

P/S: 我检查了 apache 日志和 /var/log/messages.. 没有错误。

【问题讨论】:

  • exec 行永远无法执行(是否缺少任何代码?)
  • 我在这里缺少什么?对不起,我不知道是什么
  • 哦.. } 最后?这只是一个错字..更正:)
  • 没有。 exit() 已经终止了代码的执行
  • 多年来我一直在使用 PHP,这是我第一次犯这种愚蠢的错误 T_T ..抱歉犯了这个愚蠢的错误。非常感谢。

标签: php linux ssh phpseclib


【解决方案1】:

exit() 命令将终止其后的后续代码。您可能想要:

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');  
include('Net/SSH2.php');

$ssh = new Net_SSH2('xxx.xxx.xxx.xxx'); 
if (!$ssh->login('root', 'abc123')) { 
 exit('Login Failed'); 
}
echo $ssh->exec('ls -la');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-11
    • 2023-04-05
    • 2015-08-26
    • 2017-12-28
    • 1970-01-01
    • 2020-07-09
    • 2012-05-09
    • 1970-01-01
    相关资源
    最近更新 更多