phpseclib给了我一个奇怪的错误

时间:2015-09-24 13:28:44

标签: php phpseclib

我试图使用它,但它只是给了我这个错误,我不知道如何解决这个问题..

  

警告:include_once(Math / BigInteger.php):无法打开流:否   这样的文件或目录   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   891行

     

警告:include_once():打开'Math / BigInteger.php'失败   包含(include_path ='。:/ usr / share / php:/ usr / share / pear')in   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   891行

     

警告:include_once(Crypt / Random.php):无法打开流:否   这样的文件或目录   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   第895行

     

警告:include_once():无法打开'Crypt / Random.php'   包含(include_path ='。:/ usr / share / php:/ usr / share / pear')in   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   第895行

     

警告:include_once(Crypt / Hash.php):无法打开流:没有这样的   文件或目录   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   第899行

     

警告:include_once():打开'Crypt / Hash.php'无法包含   (include_path ='。:/ usr / share / php:/ usr / share / pear')in   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   第899行

     

警告:include_once(Crypt / Base.php):无法打开流:没有这样的   文件或目录   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   第904行

     

警告:include_once():打开'Crypt / Base.php'无法包含   (include_path ='。:/ usr / share / php:/ usr / share / pear')in   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   第904行

     

致命错误:调用未定义的函数   phpseclib_resolve_include_path()in   /home/www/sfs_web/statistics/_public/_functions/Server/Net/SSH2.php on   第1226行

include('Net/SSH2.php');
$ssh = new Net_SSH2('host');
if (!$ssh->login('user', 'pass')) {
  echo('Login Failed');
}

$ssh->exec('the cmd line...");
$ssh->disconnect();

3 个答案:

答案 0 :(得分:7)

phpseclib可能不在你的include_path中。引用phpseclib.sourceforge.net

<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

include('Net/SSH2.php');
?>

您需要根据需要进行调整。如果phpseclib在vendor / phpseclib目录中,那么执行'vendor/phpseclib'等等。

答案 1 :(得分:0)

是的,你需要set_include_path。 而且,按照我的方式,我已经替换了 ssh2.php 所有包含指令

include_once(Math/BigInteger.php)

on

stream_resolve_include_path(Math/*****.php)

答案 2 :(得分:0)

对于CodeIgniter <= 3,

set_include_path(get_include_path()。PATH_SEPARATOR。APPPATH.'libraries / phpseclib');