워드프레스 사이트가 손상되었거나 서버를 이관해야 할 때, 백업 파일로부터 사이트를 복원하는 능력은 매우 중요합니다. 이 글에서는 가장 일반적인 백업 형태(파일 압축본과 데이터베이스 덤프, 또는 플러그인 백업)를 기준으로 실제 복원 절차를 단계별로 설명합니다. 가능한 한 안전하게 작업하는 방법과 흔히 발생하는 문제의 해결책도 함께 다룹니다.
복원 전 준비
필수 준비물
- 백업 파일: 웹파일(보통 wp-content, wp-config.php 포함)과 데이터베이스 덤프(.sql) 또는 플러그인 백업(.zip/.gz 등)
- 호스팅/서버 접근 정보: FTP/SFTP, cPanel/호스팅 관리자, 또는 SSH 접근
- 데이터베이스 접속 정보: DB 이름, 사용자, 비밀번호, 호스트
- 복원 작업을 할 테스트 환경(가능하면 스테이징) 또는 유지보수 모드 적용 제어
- 작업 전 전체 백업(현재 서버 기준) — 되돌릴 수 있도록 반드시 백업을 별도 보관
안전 주의사항
- 복원 작업 전 현재 사이트의 백업을 추가로 받아 두세요.
- 가능하면 실서버가 아닌 테스트/스테이징 환경에서 먼저 복원해 검증하세요.
- 데이터베이스 정보를 수정할 때는 오타로 인한 영구 손상을 피하기 위해 주의하세요.
백업 유형에 따른 복원 전략
1) 플러그인 백업(예: UpdraftPlus, Duplicator, All-in-One)
플러그인 백업은 일반적으로 파일과 DB를 함께 묶거나 별도 파일로 제공합니다. 같은 플러그인을 이용해 복원하면 절차가 가장 단순합니다.
- 플러그인 복원 기능(업로드 & 복원)을 사용하세요.
- 플러그인 제공 가이드나 로그를 확인해 누락된 항목이 없는지 확인합니다.
2) 수동 백업(파일 .zip + DB .sql)
플러그인 없이 직접 복원해야 하는 경우, 아래 단계로 진행합니다.
실제 복원 절차 (수동 백업 기준)
-
서버에 접속 및 준비
- FTP/SFTP 혹은 파일 매니저로 서버에 접속합니다.
- 복원을 적용할 디렉터리를 비우거나 별도 폴더(예: site_restore/)를 만들어 준비합니다.
- 데이터베이스가 없거나 새로 생성해야 하면 호스팅 관리자에서 새 DB와 DB 사용자(권한 포함)를 만듭니다.
-
웹파일 복원
- 백업한 웹파일(.zip 또는 tar)을 서버에 업로드합니다.
- 업로드 후 압축을 해제하여 원래의 워드프레스 파일 구조(특히 wp-content)가 복원되도록 합니다.
- wp-config.php가 백업에 포함되어 있다면 복원 위치에 놓습니다. 없으면 기존 서버의 wp-config.php를 사용하거나 새로 생성해 DB 정보를 입력합니다.
-
데이터베이스 복원
- phpMyAdmin, MySQL Workbench 또는 SSH 접속 시 mysql 명령으로 .sql 파일을 임포트합니다.
- phpMyAdmin 예시: 데이터베이스 선택 → 가져오기 → .sql 파일 업로드 → 실행
- SSH 예시:
(보안상 비밀번호 입력 요청이 나타납니다.)mysql -u dbuser -p dbname < backup.sql - 기존 데이터베이스가 남아있어 충돌이 우려되면 테이블을 삭제하거나 빈 데이터베이스에 복원하세요.
-
wp-config.php 확인 및 수정
- wp-config.php에서 DB_NAME, DB_USER, DB_PASSWORD, DB_HOST 값이 현재 서버 환경과 일치하는지 확인합니다.
- 사이트 도메인이 바뀌었다면 siteurl/home 옵션을 변경해야 할 수 있습니다(아래 “URL 변경” 참조).
-
파일 권한 설정
- 일반 권장값: 폴더 755, 파일 644. (서버 환경에 따라 다를 수 있으니 호스팅 가이드를 확인)
- 예: SSH에서
find /path/to/site -type d -exec chmod 755 {} \; find /path/to/site -type f -exec chmod 644 {} \;
-
캐시/퍼머링크 및 테마/플러그인 점검
- 관리자 화면에 접속해 플러그인과 테마가 활성화되어 있는지 확인합니다.
- 퍼머링크 문제 발생 시 관리화면 > 설정 > 고정링크에서 “저장”을 눌러 .htaccess를 재생성합니다.
- 캐시 플러그인이 설치되어 있으면 캐시를 모두 비웁니다.
-
URL 변경(도메인/경로가 바뀐 경우)
- 직접 SQL 수정(간단한 값들)이나 WP-CLI의 search-replace를 권장합니다(직렬화된 데이터 유지를 위해).
- WP-CLI 예:
wp search-replace 'http://old-domain.com' 'http://new-domain.com' --skip-columns=guid --allow-root - WP-CLI 사용이 불가능하면 interconnect/serialized search-replace 도구를 사용하세요(도구를 신뢰할 수 있는 출처에서 가져올 것).
-
최종 점검
- 웹사이트 주요 페이지(홈, 글, 미디어, 로그인 등)를 확인합니다.
- 관리자 로그인, 미디어 로드, 폼/결제 플로우 등 핵심 기능을 테스트합니다.
문제 발생 시 체크포인트 및 해결 팁
- 데이터베이스 연결 오류: wp-config.php의 DB_* 값(특히 DB_HOST와 비밀번호)을 재확인하세요. 호스트가 localhost가 아닐 수 있습니다.
- 흰색 화면(White Screen of Death): 플러그인 충돌 또는 메모리 제한 문제일 수 있습니다. wp-content/plugins 폴더 이름을 임시로 변경해 플러그인을 비활성화해 보세요.
- 이미지/미디어가 보이지 않을 때: wp-content/uploads 폴더가 제대로 복원되었는지와 권한을 확인하세요.
- 링크가 깨질 때: 퍼머링크 재설정 또는 search-replace로 URL을 일괄 교체하세요.
- 권한 문제: 웹서버 유저(예: www-data, nginx 등)의 소유권과 권한이 올바른지 확인하세요(chown/chmod).
체크포인트 (복원 전/후 빠르게 확인할 항목)
- 백업 파일(파일+DB)이 온전한지 확인했는가?
- 작업 전 현재 서버의 추가 백업을 확보했는가?
- DB 접속 정보가 정확한가?
- wp-config.php가 환경에 맞게 설정되었는가?
- 파일 권한과 소유권이 적절한가?
- 퍼머링크와 캐시를 재설정했는가?
- 핵심 기능(로그인, 게시물, 미디어, 폼 등)을 점검했는가?
FAQ
1. 복원 작업에 걸리는 시간은 얼마나 걸리나요?
사이트 규모와 서버 성능, 업로드/다운로드 속도에 따라 다릅니다. 소규모 사이트는 수십 분, 수 GB 이상의 미디어를 포함한 대형 사이트는 몇 시간 이상 걸릴 수 있습니다.
2. 백업을 다른 도메인이나 다른 서버에 복원할 수 있나요?
네, 가능하지만 도메인/경로 변경에 따른 DB 내 URL 교체(직렬화된 데이터 유지 필요)와 wp-config.php의 DB 설정 수정이 필요합니다. 먼저 스테이징 환경에서 시험 복원을 권장합니다.
3. 데이터베이스 파일(.sql)이 손상되었거나 일부 테이블만 있는 경우 어떻게 하나요?
손상된 경우 완전 복원이 어려울 수 있습니다. 가능한 경우 다른 백업 버전을 사용하거나 호스팅 업체에 복구 지원을 요청하세요. 부분 테이블만 있다면 누락된 테이블이 무엇인지 파악한 뒤 필요한 테이블만 복원하거나 수동으로 테이블을 재생성해야 합니다.
마무리
워드프레스 복원은 차분하고 절차적으로 진행하면 대부분 성공합니다. 항상 작업 전 현재 상태의 백업을 추가로 확보하고, 가능하면 스테이징 환경에서 먼저 복원해 검증하세요. 복원 중 문제가 생기면 로그와 호스팅 제공자의 지원을 활용하면 해결 속도가 빨라집니다.
답글 남기기