连接正常时,无法使用PHP代码从aws实例访问ftp文件夹

问题描述 投票:-1回答:1

我的Php代码是,在aws服务器上有一些错误

$conn_id = ftp_connect("SERVERIP");
$ftp_user_name = "username";
$ftp_user_pass = "password";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);        
// login with username and password
ftp_put($conn_id,$target_dir, $_FILES["UploadedImage"]["tmp_name"], FTP_BINARY);

当我从aws服务器发送请求时出现以下错误,似乎有一些问题需要获取ftp文件夹

状态:日期:星期三,2017年3月22日08:09:16 GMT Last-Modified:Wed,22 Mar 2017 08:09:16 +0000服务器:Apache / 2.2.21(Win32)PHP / 5.3.10 X-Powered-作者:PHP / 5.3.10 ETag:“1490170156”Content-Language:zh_cn Access-Control-Allow-Origin:* Cache-Control:no-cache,must-revalidate,post-check = 0,pre-check = 0 Connection :Keep-Alive Content-Type:text / html Keep-Alive:timeout = 5,max = 100 Content-Length:68 Expires:Sun,19 Nov 1978 05:00:00 GMT Check Internet Connection / Router。联系本地管理员

php amazon-web-services ftp
1个回答
1
投票

您并没有真正为我们提供可用于识别问题的大量信息。

无论如何,您正在使用主动FTP模式。由于无处不在的防火墙和NAT,现在主动FTP模式几乎不起作用。特别是NATted中的AWS网络。通常,您应始终使用被动FTP模式。

有关详细信息,请参阅我在FTP active and passive modes上的文章。

在PHP中,通过在ftp_pasv之后调用ftp_connect(或ftp_login,如果你使用它)切换到被动模式。

$conn_id = ftp_connect("SERVERIP");

$ftp_user_name = "username";
$ftp_user_pass = "password";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);        

// turn passive mode on
ftp_pasv($conn_id, true);
© www.soinside.com 2019 - 2024. All rights reserved.