ftp_nlist():data_accept:SSL / TLS握手失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ftp_nlist():data_accept:SSL / TLS握手失败相关的知识,希望对你有一定的参考价值。

曾几何时,php领域出现了正常错误:

警告:ftp_nlist():data_accept:第29行的[path]中的SSL / TLS握手失败

但这里是捕获,“第29行”不是连接或登录,请注意它如何引用ftp_nlist()函数:

$ftp = ftp_ssl_connect($cred['host'], $cred['port'], 180);
if (!ftp_login($ftp, $cred['user'], $cred['pass'])) {die("Login Failed");}
ftp_pasv($ftp, true);

$files = ftp_nlist($ftp, '');

OpenSSL在phpinfo()中编译和启用,如下所示:ftp_login() : SSL/TLS handshake failed

我见过的其他帖子似乎都引用了ftp_ssl_connect()ftp_login()命令中的错误,它对我有用。当ftp_login()返回true时我可以检查什么?

或者......是否有任何日志可以获得有关错误的更多详细信息?

12-28-2017更新:升级到5.6已解决,所以看起来马丁就是重点。

答案

ftp_nlist打开数据连接。该连接也需要TLS / SSL握手。

由于控制连接握手成功,问题实际上不能与PHP中缺少TLS / SSL支持。问题都不在于服务器和PHP无法找到同意的密码。

当控制连接上的握手成功后数据连接上的TLS / SSL握手失败时,通常是因为客户端(PHP)没有从数据连接上的控制连接重用TLS / SSL会话(请参阅Why is session reuse useful in FTPS?)。有些服务器需要这样做。从5.6.26开始,PHP仅支持重用。见PHP Bug 70195。因此,请确保至少使用该版本的PHP。

以上是关于ftp_nlist():data_accept:SSL / TLS握手失败的主要内容,如果未能解决你的问题,请参考以下文章

PHP ftp获取目录内容为空

PHP - FTP文件名编码问题

以递归方式查找最后在PHP中修改的文件和文件夹

+-r, +-s 的所有排列

象棋相关

象棋相关