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 사이트를 백업하고 복원하는 기본적인 방법을 설명했습니다. 정기적으로 백업을 수행하여 데이터 손실을 방지하고, 필요한 경우 복원할 수 있도록 준비하는 것이 중요합니다.