2009-10-22 12 views
16

Korzystam z następującego kodu ↓, aby połączyć się z serwerem ftp i uzyskać listę plików. Działa na moim komputerze lokalnym (Fedora 11), ale nie na produkcji (z systemem Ubuntu), gdzie metoda ftp_nlist zwraca wartość false.Polecenie ftp_nlist nie działa

$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); 

Zwraca tablicę plików na moim komputerze i wartość false podczas produkcji.

To sprawia, że ​​jest to szczególnie denerwujące, ponieważ w obu przypadkach udaje mu się połączyć i zalogować.

var_dump($loginResult); 

powraca

bool(true) 

Odpowiedz

42

Okazuje się, że to było związane z konfiguracją zapory serwera. Przełączono do trybu pasywnego po zalogowaniu i wszystko działało.

ftp_pasv($connectionId, true); 
+2

Dla mnie ten sam problem. Wielkie dzięki za tę wskazówkę! –

+0

Stary post, ale przyzwoite porady. To działało jak czar. – Edward

+0

niesamowite !!!!!!!! –

Powiązane problemy