2016-07-22 4 views
3

私は正常に作成されたFTPサーバとローカルファイルからファイルを取得しようとしました「localhost」の上。しかし、私がUbuntuサーバーで試してみると、問題があり、ファイルがサーバーにダウンロードされていないことが表示されています。ここにコードがあります。そして、コードこの場所に/var/www/html/ftp_get:不正PORTコマンド

<?php 
$local_file = 'whdfcleads.csv'; 
$server_file = 'hdfc/hdfc_leads.csv'; 
$ftp_server="*********"; 
$conn_id = ftp_connect($ftp_server)or die("Couldn't connect to $ftp_server"); 
$ftp_user_name="*****"; 
$ftp_user_pass="******"; 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) { 
    echo "Successfully written to $local_file\n"; 
} 
else{ 
    echo "There was a problem\n"; 
} 
ftp_close($conn_id); 
?> 

を作成したファイルは、この問題を解決するために私を助けてくださいは、ローカルホストにそれがうまく働いていますが、Ubuntuのサーバのローカルファイルに/ダウンロードを作成していません。

エラーが

Array (
    [type] => 2 
    [message] => ftp_get(): Illegal PORT command 
    [file] => /var/www/html/wftp.php 
    [line] => 15 
) 

答えて

4

ある「不正PORTコマンド」は、それが無効なIPアドレスでPORTコマンドを受信したときに、ProFTPDのサーバによって発行されたメッセージです。通常、クライアントがNATの背後にある、サーバにその内部IPアドレスを報告したときに、サーバーを知らないことは、バックそのIPアドレスに到達することができない、何が起こる

最も簡単な(そして一般的に正しい)溶液に代えて、アクティブモード(PHPでデフォルト)、FTPパッシブモードを使用することです。 PHPで

、あなたはftp_loginftp_pasv functionを呼び出すことにより、パッシブモードに切り替える:

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

は、誰もが、最近パッシブモードを使用する理由、アクティブとパッシブモードが何を意味するのか、私のarticle on FTP connection modesを理解してください、と。

関連する問題