PHP的ftp_get()不能在Docker容器中工作
我正在尝试从使用PHP的Docker容器中的ftp中检索文件。 脚本我有本地工作,但该文件不是从Docker检索。 这是我的Dockerfile
FROM debian:jessie RUN apt-get update && apt-get install -y php5-cli php5-curl git cron ca-certificates ADD startup.sh / CMD ["/startup.sh"]
startup.sh只是下载实际的脚本从源代码pipe理运行,并设置一个cron作业。 对ftp的调用是这样的:
$connection = ftp_connect('theftpsite.com'); $login = ftp_login($connection, 'myusername', 'mypassword'); ftp_get($connection, 'localfile.xml', 'remotefile.xml', FTP_BINARY); ftp_close($connection);
我们收到的错误是
ftp_fget(): Switching to Binary mode.
其次是
FTP Pull failed
还有什么我需要安装在我的容器来使这个工作?
我们需要添加
ftp_pasv($connection, TRUE);
在ftp_get()之前。 这是工作的解决scheme:
$connection = ftp_connect('theftpsite.com'); $login = ftp_login($connection, 'myusername', 'mypassword'); ftp_pasv($connection, TRUE); ftp_get($connection, 'localfile.xml', 'remotefile.xml', FTP_BINARY); ftp_close($connection);