这个问题在这里已经有了答案:
ftp_nlist(): data_accept: SSL/TLS handshake failed
(2 个回答)
1年前关闭。
我正在尝试连接到需要通过 TLS 进行显式 FTP 的 FTP 服务器,所有 FTP 客户端都可以正常工作,但我无法让它在 PHP 中工作:
<?php
$ftp = ftp_ssl_connect($host, 21);
$login = ftp_login($ftp, $user, $pass);
ftp_pasv($ftp, true);
$fp = fopen('php://temp', 'r+');
fwrite($fp, 'Salam');
rewind($fp);
ftp_fput($ftp, '/file.txt', $fp);
服务器配置正确,对filezilla、lftp、ftptest.net等客户端没有问题PHP版本:7.4.3
OpenSSL:OpenSSL 1.1.1f 2020 年 3 月 31 日
最佳答案
经过几天的尝试,我发现 FTP 服务器正在使用端口 21
但是用于数据传输的端口范围不同,这解释了为什么,连接和登录有效,但列出和上传/下载无效。并且这些端口在防火墙中被阻止。
我要求主机提供商允许在这些端口上进行传出连接,问题就解决了。
关于php - 通过 TLS 的显式 FTP 失败 : Warning: ftp_fput(): data_accept: SSL/TLS handshake failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64029162/