PHP에서 FTP 모듈을 활용하는 간단한 방법

PHP에서 FTP 모듈을 활용하는 간단한 방법

PHP는 웹 개발에 널리 사용되는 스크립트 언어입니다.
PHP를 사용하면 웹 페이지를 동적으로 생성하거나 데이터베이스와 연동할 수 있습니다.
하지만 PHP 코드를 작성하고 실행하기 위해서는 웹 서버에 PHP 파일을 업로드해야 합니다.
이때 FTP(File Transfer Protocol) 모듈을 사용하면 PHP 코드를 쉽게 원격 서버에 전송할 수 있습니다.

FTP 모듈은 PHP의 내장 함수로 제공되며, FTP 서버와의 연결 및 파일 전송을 위한 다양한 기능을 제공합니다.
FTP 모듈을 사용하려면 먼저 FTP 서버의 주소, 아이디, 비밀번호 등의 정보가 필요합니다.
그리고 FTP 모듈의 함수들을 호출하여 FTP 서버와의 연결을 생성하고, 파일을 업로드하거나 다운로드할 수 있습니다.

이번 포스팅에서는 PHP에서 FTP 모듈을 사용하는 방법에 대해 간단히 알아보겠습니다.

FTP 서버와의 연결 생성

FTP 모듈을 사용하기 위해서는 먼저 FTP 서버와의 연결을 생성해야 합니다.
이를 위해 ftp_connect() 함수와 ftp_login() 함수를 사용합니다.
ftp_connect() 함수는 FTP 서버의 주소와 포트 번호를 인자로 받아서 FTP 서버와의 연결을 생성하고, 연결 식별자를 반환합니다. 만약 연결에 실패하면 false를 반환합니다.
ftp_login() 함수는 FTP 서버에 로그인하기 위해 연결 식별자, 아이디, 비밀번호를 인자로 받습니다. 만약 로그인에 성공하면 true를 반환하고, 실패하면 false를 반환합니다.
다음은 FTP 서버와의 연결을 생성하는 예제 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// FTP 서버의 주소와 포트 번호
$server = "ftp.example.com";
$port = 21;
// FTP 서버에 로그인하기 위한 아이디와 비밀번호
$user = "username";
$pass = "password";
// FTP 서버와의 연결 생성
$conn = ftp_connect($server, $port);
// 연결 확인
if ($conn) {
  echo "Connected to $server:$port<br>";
} else {
  echo "Connection failed<br>";
  exit;
}
// FTP 서버에 로그인
$login = ftp_login($conn, $user, $pass);
// 로그인 확인
if ($login) {
  echo "Logged in as $user<br>";
} else {
  echo "Login failed<br>";
  exit;
}
?>
 
cs

파일 업로드

FTP 서버와의 연결이 생성되고 로그인이 완료되면, 파일을 업로드할 수 있습니다.
이를 위해 ftp_put() 함수를 사용합니다.
ftp_put() 함수는 원격 서버에 파일을 업로드하기 위해 연결 식별자, 원격 파일 경로, 로컬 파일 경로, 전송 모드를 인자로 받습니다. 만약 업로드에 성공하면 true를 반환하고, 실패하면 false를 반환합니다.
전송 모드는 ASCII 모드와 바이너리 모드가 있으며, ASCII 모드는 텍스트 파일을 전송할 때 사용하고, 바이너리 모드는 이미지나 동영상 등의 바이너리 파일을 전송할 때 사용합니다.
전송 모드를 지정하기 위해 FTP_ASCII와 FTP_BINARY라는 상수를 사용합니다.
다음은 로컬에 있는 test.php 파일을 원격 서버의 public_html 폴더에 업로드하는 예제 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// FTP 서버와의 연결 생성 및 로그인 코드 생략
// 원격 파일 경로
$remote_file = "public_html/test.php";
// 로컬 파일 경로
$local_file = "test.php";
// 파일 업로드
$upload = ftp_put($conn$remote_file$local_file, FTP_ASCII);
// 업로드 확인
if ($upload) {
  echo "Uploaded $local_file to $remote_file<br>";
else {
  echo "Upload failed<br>";
}
?>
cs

파일 다운로드

FTP 서버와의 연결이 생성되고 로그인이 완료되면, 파일을 다운로드할 수 있습니다.
이를 위해 ftp_get() 함수를 사용합니다.
ftp_get() 함수는 원격 서버에서 파일을 다운로드하기 위해 연결 식별자, 로컬 파일 경로, 원격 파일 경로, 전송 모드를 인자로 받습니다. 만약 다운로드에 성공하면 true를 반환하고, 실패하면 false를 반환합니다.
전송 모드는 ftp_put() 함수와 동일하게 ASCII 모드와 바이너리 모드가 있으며, FTP_ASCII와 FTP_BINARY라는 상수를 사용합니다.
다음은 원격 서버의 public_html 폴더에 있는 image.jpg 파일을 로컬에 다운로드하는 예제 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// FTP 서버와의 연결 생성 및 로그인 코드 생략
// 로컬 파일 경로
$local_file = "image.jpg";
// 원격 파일 경로
$remote_file = "public_html/image.jpg";
// 파일 다운로드
$download = ftp_get($conn$local_file$remote_file, FTP_BINARY);
// 다운로드 확인
if ($download) {
  echo "Downloaded $remote_file to $local_file<br>";
else {
  echo "Download failed<br>";
}
?>
 
cs

FTP 서버와의 연결 종료

FTP 서버와의 연결을 종료하려면 ftp_close() 함수를 사용합니다.
ftp_close() 함수는 연결 식별자를 인자로 받아서 FTP 서버와의 연결을 종료하고, true를 반환합니다. 만약 연결이 이미 종료되었거나 실패하면 false를 반환합니다.
다음은 FTP 서버와의 연결을 종료하는 예제 코드입니다.
1
2
3
4
5
6
7
8
9
10
11
<?php
// FTP 서버와의 연결 생성 및 로그인 코드 생략
// FTP 서버와의 연결 종료
$close = ftp_close($conn);
// 종료 확인
if ($close) {
  echo "Connection closed<br>";
else {
  echo "Connection not closed<br>";
}
?>
cs

결론

이번 포스팅에서는 PHP에서 FTP 모듈을 사용하는 방법에 대해 간단히 알아보았습니다.
FTP 모듈은 PHP 코드를 원격 서버에 쉽게 업로드하거나 다운로드할 수 있게 해주는 유용한 기능입니다.
FTP 모듈을 활용하면 PHP 프로젝트를 효율적으로 관리할 수 있습니다.
저는 개인적으로 PHP에서 FTP 모듈을 사용하는 것이 매우 편리하다고 생각합니다.
특히 서버호스팅이 아닌 웹 호스팅 서비스를 이용하여 PHP 프로젝트를 진행할 때, FTP 모듈을 사용하여 PHP 코드를 쉽게 업데이트할 수 있었습니다.
또한 FTP 모듈은 다른 언어나 플랫폼과도 호환되기 때문에 다양한 환경에서 사용할 수 있다는 장점이 있습니다.
PHP에서 FTP 모듈을 사용하는 방법에 대해 더 자세히 알고 싶으시다면, 다음 링크 를 참고해주세요.
  • https://www.php.net/manual/en/book.ftp.php
  • https://www.w3schools.com/php/php_ref_ftp.asp

이상으로 포스팅을 마치겠습니다.
감사합니다 :)

댓글

이 블로그의 인기 게시물

crontab 설정방법과 로그 확인하는 법

Microsoft Defender 방화벽 설정 또는 해제하는 방법

한국 군비지출 세계 9위