You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FTPS登录成功但ftp_put上传失败,报错php_connect_nonb()该如何解决?

解决FTPS上传失败(php_connect_nonb()报错)的踩坑记录

我花了整整半天时间才搞定这个FTPS文件上传的问题,现在把问题细节和排查过程分享出来,希望能帮到遇到同样困境的开发者:

初始实现代码

$host = ... 
$user = ... 
$pass = ...

$conn = ftp_ssl_connect($host, 22);
if($conn === false) { die('could not connect :('); }

$login_result = ftp_login($conn, $user, $pass);
ftp_pasv($conn, true);

$file = realpath('test.txt');
echo 'putting file '.$file."\n";
ftp_put($conn, 'test.txt', $file, FTP_BINARY);

ftp_close($conn);

问题现象

FTPS的连接与登录步骤都能成功执行,但调用ftp_put上传文件时会卡住,等待约一分钟后抛出如下报错:

Warning: ftp_put(): php_connect_nonb() failed: Operation now in progress (36)

已排除的常见诱因

  • 排除被动模式的影响:我反复尝试开启和关闭被动模式(切换ftp_pasv的参数),问题依然存在,这和多数同类问题的原因不同

额外说明

我知道FTPS通常默认使用21端口,但这次对接的是第三方服务,端口只能指定为22,没有其他选择

内容的提问来源于stack exchange,提问作者Vincent Pazeller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:56:33