2012-03-14 2 views
1

FTP 서버에 액세스하고 플랫 파일을 가져 오는 코드를 작성했습니다. WAMP (Windows; 5.3.10)의 개발 환경에서 작동하지만 프로덕션 서버 (5.3.2 - Linux)에서는 ftp_nlist를 호출 할 때 실패합니다.ftp_nlist가 true를 반환 함 - 서버에서 작동하지 않음, dev에 있음

약 30 초 동안 앉아서 코딩 된 오류 메시지 [FTP] Unable to retrieve files in the directory으로 사망합니다.

$link = ftp_connect(constant("FTP_SERVER")); 
if(!$link) 
    die("Unable to open connection to FTP Server: " + constant("FTP_SERVER")); 

if(!ftp_login($link, 
     constant("FTP_USER"), 
     constant("FTP_PASSWORD"))) 
    die("Unable to login; check username and password."); 

if(!ftp_chdir($link, 
     constant("FTP_PATH"))) 
    die("Unable to change to directory: " + constant("FTP_PATH")); 

ftp_pasv($link, true); 
clearDownloadDir(); // Delete already downloaded files 

/* Get a list of all files */ 
$files = ftp_nlist($link, '.'); 
if(!$files) 
    die("[FTP] Unable to retrieve files in the directory."); 

상수

이 같은 다른 파일에 정의되어 있습니다 : 여기

는 관련 코드는 사실에 의해 입증 (연결된다는 점이다

define("FTP_SERVER", "ftp.{server}"); 
define("FTP_PATH", "./Australia/"); 
define("FTP_USER", "{user}"); 
define("FTP_PASSWORD", "{password}"); 

저를 얻는 것은이 아니 ftp_connect에서 죽어 가고). FTP_NLIST는 부울 TRUE (1)을 반환합니다. 어떤 아이디어?

+0

@MikePurcell 예 - 내 개발 상자에서 작동합니다. – Sam

+0

@MikePurcell 코드가 내 개발 상자에서 편집되지 않은 채로 작동합니다. 원격 서버가 올바르게 구성되었고 인증 세부 사항이 정확합니다. 내 의혹은 그게 더 깊은 것 같아. – Sam

+0

그래, 나는 번역에서 뭔가를 잃어 버렸음에 틀림 없다. dev에 테스트 한 코드가 있고 잘 작동 한 다음 코드가 작동하지 않는 프로덕션 서버에 코드를 게시했습니다. 이 경우 프로덕션 서버가 아웃 Y 운드 연결을 허용하는지 확인하십시오. –

답변

1

이 코드가 실행되고있는 공유 서버의 방화벽이 FTP가 수동 모드로 들어가는 것을 방지하는 것으로 나타났습니다. 매우 이상합니다.

관련 문제