2016-10-04 43 views
-1

我已經嘗試了關於一切,但無法形成使用ftp_connect連接連接到服務器。沒有錯誤信息,所以我不知道在哪裏尋找。它只是超時。無法使用FTP_CONNECT

下面是代碼:

<?php 

$remote_file = 'file.txt'; 

$ftp_host = '1.1.1.1'; 
$ftp_user_name = '[email protected]'; 
$ftp_user_pass = 'password'; 

$local_file = 'file.txt'; 

$connect_it = ftp_connect($ftp_host) or die("Could not connect"); 

$login_result = ftp_login($connect_it, $ftp_user_name, $ftp_user_pass); 

if (ftp_put($connect_it, $remote_file, $local_file, FTP_BINARY)) { 
    echo "WOOT! Successfully transfer $local_file\n"; 
} 
else { 
    echo "Doh! There was a problem\n"; 
} 

ftp_close($connect_it); 
?> 

兩臺服務器都是我的,所以我知道他們都在和工作。服務器正在嘗試連接,除非我設置一個超時,它只是繼續前進,但沒有建立連接。我想要做的就是將一個文本文件從一個VPS轉移到另一個。

+1

ok了,錯誤的是? – Dekel

+2

你失敗了什麼信息?你有沒有嘗試過使用另一個FTP客戶端來確認服務器正在響應? – Matz

+0

這兩臺服務器都是我的,所以我知道他們都在工作。沒有錯誤消息。服務器正在嘗試連接,除非我設置一個超時,它只是繼續前進,但沒有建立連接。我想要做的就是將一個文本文件從一個VPS轉移到另一個。 –

回答

0

如果你的連接只需超時沒有錯誤,這意味着有是沒有一個服務器或其他上開了一個口。

這裏是你可以嘗試什麼:

  1. 也許把錯誤的報告:您打算使用的端口被打開兩臺服務器上

    ini_set('display_errors',1); 
    error_reporting(E_ALL|E_STRICT); 
    
  2. 檢查

    $ netstat -a|grep ftp 
    tcp  0  0 *:ftp      *:*       LISTEN 
    

    (在這裏你嘗試使用默認的,應該是「21」)

  3. 的支票,你能夠遠程登錄的東西

    telnet <host> <port> 
    
  4. 然後嘗試只是最小的FTP連接

    $ftp_host='1.1.1.1'; 
    $ftp_user_name = 'root'; // I think in your case you should not add '@1.1.1.1'... 
    $ftp_user_pass = 'password'; 
    $conn_id = ftp_connect($ftp_host) or die("Couldn't connect to $ftp_host"); 
    // Then chdir to a directory: 
    ftp_chdir($conn_id, "/your/dir"); 
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
    
  5. full documentation of PHP's FTP functions

+0

仍然無法使其工作。嘗試了端口21和22.FTP不連接。 –