
워드프레스 사이트 운영에서 백업은 데이터 유실, 시스템 고장, 해킹 등 다양한 사고에 대비하는 핵심 전략입니다. 특히, wp-cli와 같은 도구를 활용하면 관리자 페이지에 접속하지 않고도 콘텐츠 내보내기(export)나 사이트 관리를 쉽게 자동화할 수 있습니다. 그러나 wp-cli를 사용하려면 PHP의 Phar 확장이 반드시 활성화되어 있어야 하며, FreeBSD에서는 이를 별도의 패키지(php84-phar)로 제공합니다.
주의: 본 가이드는 데이터베이스 백업이나 클라우드 저장소 사용 없이 파일 시스템 자체 백업에 초점을 맞춥니다.
1. 백업의 중요성
워드프레스 사이트의 콘텐츠와 미디어 파일은 단순한 데이터가 아니라 여러분의 창의력과 노력이 담긴 소중한 자산입니다. 정기적인 백업은 다양한 위험 요소에 대비할 수 있는 최선의 전략인데, 특히 다음과 같은 상황에서 그 필요성이 두드러집니다:
- 서비스 중단 최소화: 어떤 형태의 데이터 손실 상황에서도 신속하게 복구함으로써 사이트의 다운타임과 사용자 불편을 최소화할 수 있습니다.
- 예기치 않은 사고 대비: 실수로 인한 콘텐츠 삭제나 파일 손상, 시스템 오류 발생 시 최신 백업 파일을 통해 신속하게 복구할 수 있습니다.
- 해킹 및 악성코드 공격 방어: 사이버 공격 또는 악성코드 감염으로 데이터가 변경되거나 소실될 경우, 백업 파일을 활용해 원래 상태로 복원할 수 있습니다.
- 노력과 투자 보호: 사이트 운영에 쏟은 시간과 노력이 담긴 콘텐츠 및 미디어 파일을 정기적으로 백업하여 중요한 결과물을 안전하게 보존할 수 있습니다.
- 서버 및 하드웨어 고장 대비: 물리적인 서버나 스토리지 장치의 고장은 언제든지 발생할 수 있습니다. 하드웨어 장애로 인한 데이터 유실 위험에 대비해, 백업은 필수적입니다.
2. 환경 설정 및 준비
2.1 FreeBSD 홈서버 환경
- 운영체제: FreeBSD (자체 호스팅)
- 워드프레스 위치:
/usr/local/www/wordpress
(예시 경로) - 백업 저장 디렉토리:
- 콘텐츠:
/usr/local/backup/wordpress/xmls
- 미디어:
/usr/local/backup/wordpress/media
- 콘텐츠:
모든 백업 파일은 로컬에 저장되며, 별도의 클라우드 저장소는 사용하지 않습니다.
2.2 wp-cli 소개
wp-cli는 워드프레스를 위한 강력한 명령줄 도구입니다.
관리자 페이지에 접속하지 않고도 워드프레스의 거의 모든 기능을 관리할 수 있습니다. 플러그인 설치, 테마 관리, 업데이트, 데이터 수출 등 다양한 작업이 커맨드 한 줄로 가능하며, 자동화 스크립트 작성에도 매우 유용합니다.
wp-cli는 워드프레스 관리를 위한 강력한 커맨드라인 도구로, 오픈 소스 프로젝트로 개발되고 유지보수되고 있어 기본적으로는 신뢰할 수 있는 안전한 도구로 평가받습니다.
wp-cli는 최신 보안 업데이트와 적절한 사용 환경 설정, 권한 관리 등의 보안 모범 사례를 잘 적용한다면 매우 안전하게 사용할 수 있습니다. 결국, wp-cli 자체의 보안성은 비교적 견고하지만, 사용자의 서버 보안 정책과 운영 환경 설정에 따라 실제 안전성은 달라질 수 있다는 점을 염두에 두어야 합니다.
2.3 FreeBSD에 wp-cli를 설치하는 방법
FreeBSD에서 wp-cli를 설치하는 가장 일반적인 방법은 공식 PHAR 파일을 사용하는 것입니다. wp-cli는 PHAR( PHP Archive ) 형태로 배포되므로 PHP에서 Phar 확장이 활성화되어 있어야 합니다.
# FreeBSD의 패키지 관리자를 사용하여 php84-phar 패키지를 설치합니다.
sudo pkg install php84-phar
# wp-cli 설치 (PHAR 파일 사용)
# 1. 다운로드 (임시 디렉토리에서)
cd /tmp
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# 2. 실행 가능하도록 권한 부여
chmod +x wp-cli.phar
# 3. 전역 실행 가능한 위치로 이동 (루트 권한 필요)
sudo mv wp-cli.phar /usr/local/bin/wp
# 4. 설치 확인 (버전 정보 표시)
wp --info
정상 출력된다면 wp-cli가 사용할 준비가 완료된 것입니다.
3. 워드프레스 콘텐츠 XML 파일 백업
워드프레스 내보내기(export) 기능을 활용하여 사이트의 콘텐츠(게시글, 페이지 등)를 XML 파일로 백업할 수 있습니다.
sudo mkdir -p /usr/local/backup/wordpress/xmls
cd /usr/local/www/wordpress
sudo wp export --dir=/usr/local/backup/wordpress/xmls
다음과 같은 결과가 출력된다면 성공한 것입니다. 파일 이름은 다를 수 있습니다.
Starting export process...
Writing to file /usr/local/backup/wordpress/xmls/nimfsoft.wordpress.2025-03-20.000.xml
Success: All done with export.
4. 미디어 파일 백업
워드프레스 미디어 파일은 wp-content/
폴더에 저장됩니다. 이를 tar.gz 형식으로 압축하여 백업하면 클라우드 저장소 없이도 데이터 복구가 가능합니다.uploads
5. 콘텐츠 및 미디어 백업 스크립트 작성
#!/bin/sh
# wp-backup.sh : 컨텐츠 및 미디어 파일 백업 스크립트
# 환경 변수 설정
WP_PATH="/usr/local/www/wordpress"
UPLOADS_DIR="${WP_PATH}/wp-content/uploads"
XML_DIR="/usr/local/backup/wordpress/xmls"
MEDIA_DIR="/usr/local/backup/wordpress/media"
DATE=$(date +"%Y%m%d")
# 백업 디렉토리 생성 (디렉토리가 없으면 생성)
mkdir -p /usr/local/backup/wordpress/xmls
mkdir -p "$MEDIA_DIR"
cd /usr/local/www/wordpress
sudo wp export --dir=/usr/local/backup/wordpress/xmls
# uploads 디렉토리를 tar.gz 형식으로 압축하여 백업 파일 생성
tar -czvf "${MEDIA_DIR}/media-${DATE}.tar.gz" -C "$UPLOADS_DIR" .
스크립트를 /usr/local/bin/wp-backup.sh
로 저장한 후, 실행 권한을 부여합니다.
chmod +x /usr/local/bin/wp-backup.sh
cron을 사용하여 매일 새벽 1시에 자동 백업되도록 설정할 수 있습니다.
crontab -e
# 매일 새벽 1시에 미디어 백업 스크립트 실행 (로그는 /var/log/wp-backup.log에 기록)
0 1 * * * /usr/local/bin/wp-backup.sh >> /var/log/wp-backup.log 2>&1
6. 백업 복구 방법
6.1. 콘텐츠 복구
워드프레스 관리자 페이지: 관리자에서 “도구 > 가져오기” 메뉴를 사용해 XML 파일을 업로드하여 복구합니다.
wp-cli를 통한 복구:
cd /usr/local/www/wordpress
wp import /usr/local/backup/wordpress/xmls/content-YYYYMMDD.xml --authors=create
--authors=create
옵션은 XML 파일 내 작성자가 없을 경우 자동 생성한다는 옵션입니다.
6.2. 미디어 복구
기존의 wp-content/uploads
폴더를 백업하거나 삭제합니다.
백업된 tar.gz 파일을 원래 디렉토리에 압축 해제합니다.
# 기존 uploads 폴더 백업 (선택 사항)
mv /usr/local/www/wordpress/wp-content/uploads /usr/local/www/wordpress/wp-content/uploads-backup
# uploads 폴더 생성 및 백업 파일 압축 해제
mkdir -p /usr/local/www/wordpress/wp-content/uploads
tar -xzvf /usr/local/backup/media/media-YYYYMMDD.tar.gz -C /usr/local/www/wordpress/wp-content/uploads
7. 결론
FreeBSD 홈서버에서 wp-cli를 활용해 정기적인 콘텐츠와 미디어 파일 백업을 수행하는 것은 워드프레스 사이트의 안정성과 데이터 무결성을 보장하는 중요한 관리 전략입니다. 이와 같이 별도의 플러그인이나 클라우드 저장소 없이도 안정적인 백업 체계를 구축하여, 사이트 운영의 연속성을 보장할 수 있습니다. 운영 환경에 맞게 스크립트와 cron 설정을 조정하고, 정기적인 복구 테스트를 통해 실제 상황에 대비해 보시기 바랍니다.