[php] PHP에서 ZIP 파일을 SFTP로 전송하기

PHP 언어를 사용하여 ZIP 파일을 Secure File Transfer Protocol(SFTP)로 전송하는 방법에 대해 설명하려고 합니다.

이번 예제에서는 PHP의 ssh2 확장 기능을 사용하여 SFTP 연결을 설정하고, ZIP 파일 생성 및 전송까지의 과정을 안내하겠습니다.

목차

  1. SFTP 연결 설정
  2. ZIP 파일 생성
  3. 파일 전송

SFTP 연결 설정

PHP에서 SFTP 연결을 설정하기 위해서는 ssh2_connect() 함수를 사용합니다. 아래는 SFTP 서버에 연결하는 예제 코드입니다.

<?php
$remoteHost = 'sftp.example.com';
$remotePort = 22;
$username = 'username';
$password = 'password';

$connection = ssh2_connect($remoteHost, $remotePort);
if (ssh2_auth_password($connection, $username, $password)) {
    echo "SFTP 연결 성공";
} else {
    echo "SFTP 연결 실패";
}
?>

ZIP 파일 생성

ZIP 파일을 생성하기 위해서 PHP의 ZipArchive 클래스를 사용합니다. 아래는 ZIP 파일을 생성하는 예제 코드입니다.

<?php
$zip = new ZipArchive;
$zipFileName = 'file.zip';

if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
    // 파일들을 추가
    $zip->addFile('file1.txt', 'file1.txt');
    $zip->addFile('file2.txt', 'file2.txt');
    
    $zip->close();
    echo 'ZIP 파일이 생성되었습니다.';
} else {
    echo 'ZIP 파일을 생성하는 데 실패했습니다.';
}
?>

파일 전송

마지막으로, ZIP 파일을 SFTP 서버로 전송하기 위해서는 ssh2_scp_send() 함수를 사용합니다. 아래는 파일을 SFTP로 전송하는 예제 코드입니다.

<?php
$localFile = 'file.zip';
$remoteFile = '/path/to/remote/file.zip';

if (ssh2_scp_send($connection, $localFile, $remoteFile, 0644)) {
    echo '파일이 성공적으로 전송되었습니다.';
} else {
    echo '파일 전송에 실패했습니다.';
}
?>

위 예제 코드를 사용하여 PHP를 통해 ZIP 파일을 생성하고 SFTP로 안전하게 전송할 수 있습니다.

참고 자료