2012-03-19 8 views
1

저는 PHP에 익숙하지 않고 FTP를 통해 "Centos 6"(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과 아파치의 최신 버전을 실행하고, 또한 서버의 방화벽을 해제하고있다. Filezilla를 사용하여 서버에 연결할 수 있지만 포트 22 만 사용해야합니다.

답변

2

:

대신 SSH2 기능을보고보십시오

<?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

문제는 FTP 프로토콜을 사용하여 SFTP (포트 22는 SSH)에 응답하는 서버에 연결하는 것이고 기본적으로 파일 전송 기능), 그러나 그것은 다른 프로토콜입니다. 이것은 내가 그것을 어떻게입니다 http://php.net/manual/en/function.ssh2-sftp.php

+0

감사합니다, 내가 찾던 같은 소리를 ... – Dudipoli

관련 문제