2013-08-13 1 views
0

Я не уверен, что это я делаю что-то не так, или сервер просто не поддерживает phpseclib или что-то, но я пытаюсь подключиться к FTP-серверу, который будет принимать только безопасные FTP-соединения , и только с определенных IP-адресов. Теперь я знаю, что FTP-сервер принимает соединение с моего VPS-сервера, поскольку я удаленно подключен к VPS через SSH и вручную подключен к FTP-серверу из командной строки.phpseclib всегда вызывает ошибку входа

Однако, когда я пытаюсь выполнить следующее с помощью phpseclib, он всегда попадает в точку выхода.

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

$sftp = new NET_SFTP('***'); 
if(!$sftp->login('***', '***')) { 
    $sftp->getSFTPErrors(); 
    exit('Login Failed'); // <-- Code always gets to this point 
} 

echo $sftp->pwd(); 

Я не уверен, как даже начать отладку этой проблемы. У меня есть asked a question on their forum, а также попробуйте получить помощь. Я попытался включить ведение журнала с помощью define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);, а затем вывести echo $sftp->getSFTPLog(); чуть выше выхода, но это ничего не выводит.

На странице у меня есть только Login Failed, поэтому я не получаю никаких ошибок от $sftp->getSFTPErrors();.

Я совершенно не новичок в использовании безопасного FTP-соединения в PHP и не знаю, что я делаю неправильно. Может кто-нибудь, пожалуйста, помогите мне отладить проблему?

+0

Похоже, вы получили ответ здесь ?: http://www.frostjedi.com/phpbb3/viewtopic.php?f=46&t=168858 – neubert

+0

ли вы, что окончательное проблема была? Так как я получаю ту же ошибку. –

+0

@MasnadNihit Серверу не хватает необходимого модуля. – Styphon

ответ

2

Как вы его используете, ясно, что вы не видите никаких ошибок. $sftp->getLastSFTPError() возвращает строку, а $sftp->getSFTPErrors() возвращает массив, и это то, что вам нужно для эха, чтобы понять, что не так.

Попробуйте

print_r($sftp->getSFTPErrors());