2

我不确定这是否是我做错了,或者服务器是否不支持 phpseclib 或什么,但我正在尝试连接到仅接受安全 FTP 连接且仅来自某些 IP 地址的 FTP 服务器。现在我知道 FTP 服务器接受来自我的 VPS 服务器的连接,因为我已经通过 SSH 远程连接到我的 VPS 并成功地从命令行手动连接到 FTP 服务器。

但是,当我使用 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 回答