无法使用ftp_connect

时间:2016-10-04 20:57:14

标签: php unix ftp

我已尝试过几乎所有内容,但无法使用ftp_connect建立连接。没有错误信息,所以我不知道在哪里看。它只是超时。

以下是代码:

<?php

$remote_file = 'file.txt'; 

$ftp_host = '1.1.1.1';
$ftp_user_name = 'root@1.1.1.1';
$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传输到另一个VPS。

1 个答案:

答案 0 :(得分:0)

如果你的连接只是没有错误就超时,这意味着在一台服务器或另一台服务器上没有打开一个端口。

以下是您可以尝试的内容:

  1. 可能会打开错误报告:

    ini_set('display_errors',1);
    error_reporting(E_ALL|E_STRICT);
    
  2. 检查两台服务器上您打算使用的端口是否已打开

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

    (这里你尝试使用默认值&#34; 21&#34;)

  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