警告:ftp_put():正在连接到端口
Warning: ftp_put(): Connecting to port
我无法将文件上传到我的 ftp 服务器。
总是有警告:
ftp_put(): Connecting to port.
<?php
set_time_limit(0);
$host = 'xxxx';
$usr = 'yyyy';
$pwd = 'zzzz';
$local_file = '/home/back.sql';
$ftp_path = '/public_html/';
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
$upload = ftp_put($conn_id, $ftp_path.'back1.sql', $local_file, FTP_ASCII);
print($upload);
?>
代码执行了3次。我收到三个不同的警告。
Warning: ftp_put(): Connecting to port 1926 in filename (i named it) on line 10
Warning: ftp_put(): Connecting to port 1928 in filename (i named it) on line 10
Warning: ftp_put(): Connecting to port 1930 in filename (i named it) on line 10
- 警告信息是什么意思?
- 为什么要连接到不同的端口?也许端口每次都应该是 21,为什么不呢?
"Connecting to port xxx" 是 PureFTPD 服务器发出的消息,当它尝试连接回 FTP 客户端时它的主动模式数据连接端口(这是随机的,这就是它改变的原因)。
如果您确实需要使用主动模式,则需要允许传入连接到 PHP 使用的主动模式数据连接端口范围。
看我的 guide for network configuration necessary for the active mode FTP.
不过,如果您不需要使用主动模式,请改用被动模式。被动模式一般不需要在客户端进行任何网络配置。
在PHP中,通过在ftp_login
之后调用ftp_pasv
function切换到被动模式:
...
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
ftp_pasv($conn_id, true) or die("Cannot switch to passive mode");
...
请参阅以上指南以了解主动和被动 FTP 模式之间的区别。
我无法将文件上传到我的 ftp 服务器。
总是有警告:
ftp_put(): Connecting to port.
<?php
set_time_limit(0);
$host = 'xxxx';
$usr = 'yyyy';
$pwd = 'zzzz';
$local_file = '/home/back.sql';
$ftp_path = '/public_html/';
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
$upload = ftp_put($conn_id, $ftp_path.'back1.sql', $local_file, FTP_ASCII);
print($upload);
?>
代码执行了3次。我收到三个不同的警告。
Warning: ftp_put(): Connecting to port 1926 in filename (i named it) on line 10
Warning: ftp_put(): Connecting to port 1928 in filename (i named it) on line 10
Warning: ftp_put(): Connecting to port 1930 in filename (i named it) on line 10
- 警告信息是什么意思?
- 为什么要连接到不同的端口?也许端口每次都应该是 21,为什么不呢?
"Connecting to port xxx" 是 PureFTPD 服务器发出的消息,当它尝试连接回 FTP 客户端时它的主动模式数据连接端口(这是随机的,这就是它改变的原因)。
如果您确实需要使用主动模式,则需要允许传入连接到 PHP 使用的主动模式数据连接端口范围。
看我的 guide for network configuration necessary for the active mode FTP.
不过,如果您不需要使用主动模式,请改用被动模式。被动模式一般不需要在客户端进行任何网络配置。
在PHP中,通过在ftp_login
之后调用ftp_pasv
function切换到被动模式:
...
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
ftp_pasv($conn_id, true) or die("Cannot switch to passive mode");
...
请参阅以上指南以了解主动和被动 FTP 模式之间的区别。