【发布时间】:2015-05-19 07:46:35
【问题描述】:
什么
我正在尝试在 Heroku 中进行非常基本的 ftp 阅读。
代码:
$ftp = ftp_connect($config['domain']);
$login = ftp_login($ftp,$config['ftp_user'],$config['ftp_pass']);
ftp_pasv($ftp, true);
$contents = ftp_nlist($ftp, "/");
for ($i = 0 ; $i < count($contents) ; $i++)
echo "<li>" . substr($contents[$i],1) . "</li>";
ftp_close($ftp);
Heroku 错误
2015-05-19T07:26:01.678102+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=xxx-ftp.herokuapp.com request_id=xxxxx-364a-48f8-8e2a-383affb0789f fwd="xx.12.8.106" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0
2015-05-19T07:26:31.739770+00:00 app[web.1]: [Tue May 19 07:26:31.738789 2015] [proxy_fcgi:error] [pid 186:tid 140199224919808] (70007)The timeout specified has expired: [client 10.127.183.84:42907] AH01075: Error dispatching request to : (polling)
2015-05-19T07:26:31.853475+00:00 app[web.1]: [19-May-2015 07:26:31 UTC] PHP Warning: ftp_nlist(): php_connect_nonb() failed: Operation now in progress (115) in /app/list.php on line 26
事实
- 连接正常(返回真)
- Heroku 仅在执行 ftp_nlist 或 ftp_rawlist 时才会超时。
- 登录成功
- 我尝试过使用和不使用
PASIVE模式 -
PWD等其他基本命令运行正常 - 我还尝试列出更具体的文件夹,例如:
ftp_nlist($conn,"/MyFolder"); - 我尝试读取和列出的文件夹数量很少。
- FTP 服务器在 2 秒内从其他 FTP 客户端响应
- 其他服务器(不是heroku)中的相同代码可以正常工作。
【问题讨论】:
-
你是说你试过
ftp_pasv($conn_id,true);,是吗?