FTP в сценарии PHP и командной строке завершается неудачно с 553, но Filezilla передает OK - PullRequest
3 голосов
/ 03 апреля 2011

Я получаю странный сбой FTP в скрипте PHP. Я воссоздал ошибку, просто используя командную строку FTP, поэтому я думаю, что я могу устранить PHP из моих запросов.

Используя командную строку FTP в Ubuntu 10.10, я могу подключиться к своему FTP-серверу, войти в систему, просмотреть каталоги и т. Д. Однако, когда я пытаюсь перенести файл с локального компьютера на FTP-сервер с помощью «put», я получаю ошибка «553 Не удалось создать файл». Я получаю одинаковую ошибку в активном и пассивном режимах. Передача установлена ​​в двоичный формат.

Когда я запускаю FileZilla на той же машине и подключаюсь к одному и тому же FTP-серверу, используя те же учетные данные, и пытаюсь перенести один и тот же файл в один и тот же каталог назначения, передача работает отлично, после перехода по умолчанию в двоичный и пассивный режим.

FWIW, PHP-скрипт (который представляет собой простой ftp_connect, ftp_login и ftp_put), использующий одни и те же детали, завершается неудачно с «Illegal PORT command», хотя я подозреваю, что это просто интерпретация PHP той же ошибки, которую я получаю из командной строки FTP. Опять же, эта ошибка возникает как в активном, так и в пассивном режимах FTP.

1 Ответ

2 голосов
/ 03 июля 2011

FileZilla и команда ftp, вероятно, запускаются в разных каталогах.Вы можете настроить запуск удаленного каталога в FileZilla, и вам нужно перейти в ту же папку из командной строки.

Попробуйте использовать команду pwd после входа в систему из командной строки клиента, он покажет текущий рабочий каталог, сравнитес той, которую использует FileZilla, а затем перейдите в правильный каталог с помощью команды cd.

...