在HEROKU中,phpseclib没有显示错误,登录失败

时间:2018-01-15 10:51:24

标签: php codeigniter heroku composer-php phpseclib

我正在使用phpseclib通过SFTP将文件传输到服务器。 在我的本地计算机中,文件可以很好地传输到服务器,但是在Heroku上它根本不起作用,每次登录失败。我不确定为什么会这样。

这是一段代码。

 $sftp = new \phpseclib\Net\SFTP(getenv('INSTRUM_SERVER'),22222);
        if (!$sftp->login(getenv('INSTRUM_USERNAME'), getenv('INSTRUM_PASSWORD'))) {
            var_dump($sftp->getSFTPErrors());
            exit('Login Failed');
        }

“var_dump”返回一个空数组,所以我不确定为什么登录失败。

我正在使用composer来从供应商处加载phpseclib。

1 个答案:

答案 0 :(得分:1)

我正在使用像这样的phpseclib,并且它正常工作:

private $sftp = NULL;

private function create_sftp_object( $host, $port = 22, $timeout = 10 )
{
    $path = APPPATH . 'libraries/phpseclib';

    set_include_path( get_include_path() . PATH_SEPARATOR . $path );

    include_once( APPPATH . 'Net/SFTP.php');

    return new Net_SFTP( $host, $port, $timeout );
}

public function index()
{
    $this->sftp = create_sftp_object( 
        getenv('INSTRUM_SERVER'), 
        22222, 
        6 
    );

    if( $this->sftp->login( getenv('INSTRUM_USERNAME'), getenv('INSTRUM_PASSWORD') ){
        echo 'Login successful';
    }else{
        echo 'Login not successful';
    }
}

它与您的代码略有不同。如您所见,我的库目录中有phpseclib。试一试,看看它是否适合你。