2

これが私が何か間違ったことをしているのか、サーバーがphpseclibをサポートしていないのか、それとも何なのかはわかりませんが、安全なFTP接続のみを受け入れ、特定のIPアドレスからのみ受け入れるFTPサーバーに接続しようとしています. SSH経由でVPSにリモート接続し、コマンドラインからFTPサーバーに手動で接続したため、FTPサーバーがVPSサーバーからの接続を受け入れることがわかりました。

ただし、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();

この問題のデバッグを開始する方法さえわかりません。私は彼らのフォーラムでも質問をして、助けを得ようとしました. ロギングを有効にして、出口のすぐ上にdefine('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);出力しようとしましたが、何も出力されません。echo $sftp->getSFTPLog();

私が持っているページではLogin Failed、 からエラーが発生していません$sftp->getSFTPErrors();

PHP で安全な FTP 接続を使用するのはまったく初めてで、何が間違っているのかわかりません。誰かが問題のデバッグを手伝ってくれますか?

4

1 に答える 1

3

あなたがそれを使用している方法では、エラーが表示されないことは明らかです。 $sftp->getLastSFTPError()文字列を$sftp->getSFTPErrors()返し、配列を返します。何が問題なのかを確認するには、それをエコーする必要があります。

試す

print_r($sftp->getSFTPErrors());
于 2013-08-13T12:47:09.257 に答える