Linux에서 Drupal 사이트를 백업하는 방법

Drupal은 강력한 콘텐츠 관리 시스템(CMS)이지만, 자체 백업 기능은 제공하지 않습니다. 따라서 Drupal 사이트를 안전하게 보호하기 위해서는 Linux 환경에서 수동으로 백업을 수행해야 합니다. 이 가이드에서는 Drupal 사이트의 백업 및 복원 방법에 대해 자세히 설명합니다.

백업을 위한 준비

먼저, 백업 파일을 저장할 디렉토리를 생성해야 합니다. 터미널을 열고 다음 명령을 입력하여 루트 권한으로 전환합니다:

su -

또는:

sudo -s

다음으로, 백업 디렉토리를 생성합니다:

mkdir -p drupal-backups

SQL 데이터베이스 내보내기

Drupal 사이트의 핵심 데이터는 SQL 데이터베이스에 저장되어 있습니다. 이 데이터를 백업하려면 다음 단계를 따르십시오. 먼저, 백업 폴더 안에 하위 디렉토리를 생성합니다:

mkdir -p /drupal-backups/sql
mkdir -p /drupal-backups/installation-files
mkdir -p /drupal-backups/apache2-conf

이제 mysqldump 명령을 사용하여 데이터베이스를 내보냅니다. 다음 명령을 실행하기 전에 “username”과 “databasename”을 실제 사용자 이름과 데이터베이스 이름으로 변경해야 합니다. 일반적으로 데이터베이스 이름은 “drupal”입니다.

cd drupal-backups/sql
mysqldump -u username -p databasename > db.drupal_backup-1.sql

Drupal 설치 파일 백업

데이터베이스 백업이 완료되었으면, Drupal 설치 파일 자체를 백업해야 합니다. 일반적으로 Drupal 설치 파일은 /var/www/html/ 디렉토리에 위치합니다. 이 디렉토리 전체를 복사하여 백업 디렉토리에 저장합니다:

cp -rp /var/www/html/*  /drupal-backups/installation-files/

만약 Drupal이 /var/www/html/drupal 과 같이 하위 디렉토리에 설치되어 있다면, 복사 명령을 해당 경로에 맞게 수정해야 합니다.

Drupal 설치 파일 외에도 Apache2 설정 파일도 백업해야 합니다. 이 파일은 웹 서버가 Drupal 사이트를 로드하는 방법을 정의합니다. 다음 명령을 사용하여 설정 파일을 백업합니다:

cp /etc/apache2/sites-available/drupal.conf /drupal-backups/apache2-conf/

백업 파일 압축 및 암호화

이제 모든 백업 파일을 하나의 아카이브 파일로 묶고 압축하여 관리하기 쉽게 만듭니다:

tar -zcvpf drupal-website-backup.tar.gz /drupal-backups

압축된 백업 파일은 저장 및 이동이 용이하지만, 보안을 위해 암호화하는 것이 좋습니다. GnuPG를 사용하여 백업 파일을 암호화합니다. 만약 GnuPG가 설치되어 있지 않다면, 패키지 관리자를 통해 설치해야 합니다.

gpg -c drupal-website-backup.tar.gz

이 명령을 실행하면 GnuPG는 백업 파일을 암호화하고 암호를 입력하라는 메시지를 표시합니다. 안전한 암호를 입력하고 암호화가 완료될 때까지 기다립니다. 암호화된 파일(drupal-website-backup.tar.gz.gpg)을 안전한 위치에 저장합니다.

백업 복원

백업 파일을 복원할 서버에 암호화된 백업 파일을 다운로드합니다. 그런 다음 다음 명령을 사용하여 루트 권한으로 전환합니다:

su -

또는:

sudo -s

백업 파일을 복원할 디렉토리를 생성합니다:

mkdir -p /drupal-restore/

다운로드한 백업 파일을 복원 디렉토리로 이동합니다:

mv /folder/where/drupal-website-backup/is/drupal-website-backup.tar.gz.gpg /drupal-restore/

GPG를 사용하여 백업 파일을 해독합니다:

gpg drupal-website-backup.tar.gz.gpg

해독된 백업 파일을 압축 해제합니다:

tar -xvpf drupal-website-backup.tar.gz

압축 해제된 백업 파일이 있는 디렉토리로 이동합니다:

cd drupal-restore/drupal-backups

이제 복원을 시작합니다. 먼저, SQL 파일을 MySQL 데이터베이스로 가져옵니다. sql 디렉토리로 이동하여 다음 명령을 실행합니다:

cd sql
mysqldump -u username -p drupal < db.drupal_backup-1.sql

다음으로, Apache2 설정 파일을 복원합니다:

cp /drupal-restore/drupal-backups/apache2-conf/drupal.conf /etc/apache2/sites-available/
sudo ln -s /etc/apache2/sites-available/drupal.conf /etc/apache2/sites-enabled/drupal.conf

마지막으로, 설치 파일을 복원합니다:

cp -rp /drupal-restore/drupal-backups/installation-files/* /var/www/html/

복원 프로세스가 완료되었으면 Linux 서버를 재시작합니다. 서버가 다시 온라인 상태가 되면 Drupal 사이트가 정상적으로 작동해야 합니다.

이 가이드에서는 Drupal 사이트를 백업하고 복원하는 기본적인 방법을 설명했습니다. 정기적으로 백업을 수행하여 데이터 손실을 방지하고, 필요한 경우 복원할 수 있도록 준비하는 것이 중요합니다.