2009-10-22 15 views
16

私は次のコード↓を使用してftpサーバーに接続し、ファイルのリストを取得しています。私のローカルマシン(Fedora 11)では正常に動作しますが、ftp_nlistメソッドがfalseを返す場所(Ubuntuを実行中)では動作しません。ftp_nlistコマンドが機能しません

$ftpInfo = array('directory' => 'somewebsite.com', 
       'user' => 'someuser', 
       'password' => 'somepass', 
       'port' => 21, 
       'timeout' => 30); 
$connectionId = ftp_connect($ftpInfo['directory'], 
          $ftpInfo['port'], 
          $ftpInfo['timeout']); 

$loginResult = ftp_login($connectionId, $ftpInfo['user'], $ftpInfo['password']); 

$files = ftp_nlist($connectionId, '.'); 

var_dump($files); 
ftp_close($connectionId); 

マシン上のファイルの配列を返します。本番では、ファイルの配列を返します。

これは特に厄介なことですが、どちらの場合も、接続とログインを成功させることができます。

var_dump($loginResult); 

戻り

bool(true) 

答えて

42

これは、サーバーのファイアウォール設定に関連していたが判明。 ログイン後にパッシブモードに切り替えられ、正常に機能しました。

ftp_pasv($connectionId, true); 
+2

同じ問題です。このヒントをありがとう! –

+0

古い投稿ですがまともなアドバイス。これは魅力的に機能しました。 – Edward

+0

素晴らしい!!!!!!!! –