2012-03-19 49 views
1

私はPHPの新機能を使用しています。ftp経由で、 "Centos 6"(Linuxサーバー)を実行しているコンピュータにファイルを送信しようとしています。 私のコードは次のとおりです。ファイルをLinuxサーバーに送信

<?php 
$ftp_server = "XX.XXX.XXX.XXX"; 
$ftp_user = "user"; 
$ftp_pass = "password"; 

//set up a connection or die 
$conn_id = ftp_connect($ftp_server,22) or die("Couldn't connect to $ftp_server"); 
ftp_pasv($conn_id, true); 

//try to login 
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) { 
    echo "Connected as [email protected]$ftp_server\n"; 
} else { 
    echo "Couldn't connect as $ftp_user\n"; 
} 

    //close the connection 
ftp_close($conn_id); 
?> 

私は、MySQLとApacheの最新バージョンを実行しているし、またサーバーでファイアウォールを無効にしています。私はFilezillaでサーバにアクセスできますが、ポート22を使用する場合に限ります。

答えて

2

は、これは私がそれをやった方法です:

<?php 
include('Net/SFTP.php'); 

$sftp = new Net_SFTP('xx.xxx.xxx.xxx'); 
if (!$sftp->login('user', 'pass')) { 
    exit('Login Failed'); 
} 

//Write to a text file 
$sftp->put('destinationInServer/filename', file_get_contents('Source/filename')); 
echo "Success"; 
?> 
2

問題は、SFTPにのみ応答するサーバに接続するためにFTPプロトコルを使用しようとしていることですファイル転送機能)がありますが、それは全く異なるプロトコルです。

ではなく、SSH2の機能を見て試してみてください。http://php.net/manual/en/function.ssh2-sftp.php

+0

おかげで、私が探していたもののようなその音... – Dudipoli

関連する問題