Я пытался подключиться через FTP к моему серверу в течение некоторого времени и, похоже, не может заставить его работать.Почему PHP ftp_connect терпит неудачу при запуске сервера?
$connection_id = ftp_connect("example.com", 22);
При выполнении этого кода, он зависает на некоторое время, пока в конце концов PHP не говорит мне, что сценарий был выполнение слишком долго, и завершает работу. Он не подводит и возвращает FALSE. Это просто время.
Мой первый инстинкт заключался в том, что, возможно, сервер был выключен, поэтому я его обманул. Пинг прошел успешно, и я не потерял никаких пакетов. Затем я попытался использовать параметры для подключения к Filezilla, и он смог подключиться к. Я также могу использовать SSH на сервере. Я даже пытался продлить время выполнения PHP позволяет скрипту, но он всегда зависает и уходит.
Так что пень меня, что если все эти методы подключения к серверу работают, то почему функция ftp_connect() не работает?
ПОЯСНЕНИЯ:
Некоторые из вас задавался вопросом, почему я использую порт 22 (SSH-порт) для подключения. Сначала я попробовал порт по умолчанию для FTP (порт 21), но функция ftp_connect() немедленно вернула FALSE, которая, согласно руководству PHP, означала ошибку.
Я также был , неспособный соединиться через Порт 21 с FileZilla. Поэтому я решил использовать порт SFTP, а это порт 22. Это успешно связано с FileZilla.
FTP-серверы обычно находятся в порту 21. Порт 22 обычно является SSH. – Barmar
@Barmar Я отредактировал вопрос, чтобы решить вашу проблему. –
Похоже, сервер не работает на FTP-сервере. Порт 22 не является портом SFTP, это SSH. Возможно, вы думаете о SCP, который выполняет передачу файлов через SSH. Вы не можете использовать для этого FTP-клиент. – Barmar