Предупреждение: ftp_put (): подключение к порту

1

Я не могу загружать файлы на свой ftp-сервер.

Всегда есть предупреждение:

ftp_put(): подключение к порту.

<?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);
?>

Код выполнялся три раза. У меня было три разных предупреждения.

Предупреждение: ftp_put(): подключение к порту 1926 в имени файла (я назвал его) в строке 10
Предупреждение: ftp_put(): подключение к порту 1928 в имени файла (я назвал его) в строке 10
Предупреждение: ftp_put(): подключение к порту 1930 в имени файла (я назвал его) в строке 10

  1. Что означает информация о предупреждении?
  2. Зачем подключаться к разным портам? Может быть, порты должны быть 21 за каждый раз, почему бы и нет?
Теги:
ftp

1 ответ

3
Лучший ответ

"Соединение с портом xxx" - это сообщение, выданное сервером PureFTPD, когда он пытается подключиться к FTP-клиенту к порту подключения к данным активного режима (который является случайным, поэтому он изменяется).

Если вам действительно нужно использовать активный режим, вам необходимо разрешить входящие подключения к диапазону портов подключения к активному режиму, используемому PHP.
См. Мой справочник по настройке сети, необходимой для FTP в активном режиме.

Хотя, если вам не нужно использовать активный режим, вместо этого используйте пассивный режим. Пассивный режим обычно не требует конфигурации сети на стороне клиента.

В PHP вы переключаетесь в пассивный режим, вызывая функцию ftp_pasv после ftp_login:

...
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
ftp_pasv($conn_id, true) or die("Cannot switch to passive mode");
...

См. Приведенное выше руководство, чтобы понять разницу между активным и пассивным режимами FTP.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню