我不确定这是否是我做错了什么,或者服务器是否只是不支持 phpseclib 或者什么,但我正在尝试连接到仅接受安全 FTP 连接的 FTP 服务器,并且仅从某些IP 地址。现在我知道 FTP 服务器接受来 self 的 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();
我不确定如何开始调试这个问题。我有asked a question on their forum以及尝试寻求帮助。我尝试使用 define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);
启用日志记录,然后在导出上方输出 echo $sftp->getSFTPLog();
,但这并没有不输出任何内容。
在页面上,我刚刚登录失败
,因此我没有从$sftp->getSFTPErrors();
收到任何错误。
我对在 PHP 中使用安全 FTP 连接完全陌生,不知道我做错了什么。有人可以帮我调试这个问题吗?
最佳答案
从您使用它的方式来看,很明显您没有看到任何错误。
$sftp->getLastSFTPError()
返回一个字符串,而 $sftp->getSFTPErrors()
返回一个数组,这就是您必须回显才能查看问题所在的内容。
尝试
print_r($sftp->getSFTPErrors());
关于phpseclib 总是产生登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18209392/