워드프레스 전체 서버 이전 완벽 가이드 — 백업부터 복구까지




워드프레스 사이트를 운영하다 보면 호스팅 변경, 서버 업그레이드, 도메인 이전 등의 이유로 서버를 통째로 옮겨야 할 때가 있습니다. 이 글에서는 워드프레스 사이트를 다른 서버로 안전하게 이전하는 방법을 처음부터 끝까지 정리합니다.

서버 이전 방법은 크게 플러그인을 이용하는 방법수동 이전 두 가지가 있습니다. 각각의 장단점과 구체적인 절차를 살펴보겠습니다.


1. 이전 전 준비 — 기존 서버 환경 확인

서버를 옮기기 전에 가장 먼저 해야 할 일은 기존 서버의 환경 정보를 기록해두는 것입니다. 새 서버에서 동일한 환경을 구성하지 않으면 테마나 플러그인이 오작동할 수 있습니다.

확인해야 할 항목

서버 및 PHP 환경:

  • PHP 버전 확인: php -v
  • MySQL 또는 MariaDB 버전 확인: mysql --version
  • 웹서버 종류: Apache인지 Nginx인지
  • 설치된 PHP 확장모듈 확인: php -m
    • 워드프레스에 필요한 주요 모듈: mysqli, curl, gd, mbstring, xml, zip

PHP 주요 설정값:

  • upload_max_filesize — 파일 업로드 최대 크기
  • post_max_size — POST 요청 최대 크기
  • memory_limit — PHP 메모리 제한
  • max_execution_time — 스크립트 최대 실행 시간

💡 팁: 워드프레스 관리자 페이지에서 도구 > 사이트 건강 > 정보 탭을 열면 PHP 버전, 확장모듈, 서버 정보가 한눈에 정리되어 있습니다. 이 화면을 캡처해두면 새 서버 세팅 시 빠뜨리는 항목 없이 작업할 수 있습니다.


2. 방법 1 — 플러그인을 이용한 이전

기술적인 작업이 부담스럽다면 플러그인을 활용하는 것이 가장 간편합니다. 대표적인 플러그인으로 All-in-One WP MigrationDuplicator가 있습니다.

All-in-One WP Migration 사용법

기존 서버에서:

  1. 플러그인 설치 및 활성화
  2. 내보내기(Export) 메뉴에서 “파일로 내보내기” 선택
  3. 생성된 .wpress 파일을 로컬 PC에 다운로드

새 서버에서:

  1. 워드프레스를 새로 설치
  2. 같은 플러그인 설치 및 활성화
  3. 가져오기(Import) 메뉴에서 .wpress 파일 업로드
  4. 가져오기 완료 후 설정 > 고유주소에서 저장 버튼 클릭 (퍼머링크 갱신)

플러그인 방식의 한계

편리하지만 몇 가지 제한이 있습니다.

  • 용량 제한: 무료 버전은 업로드 용량이 약 512MB로 제한됩니다. 이미지가 많거나 사이트 규모가 큰 경우 유료 확장을 구매하거나 수동 이전을 고려해야 합니다.
  • 서버 설정 제한: 일부 호스팅에서는 PHP 업로드 크기 제한이나 실행 시간 제한 때문에 가져오기가 중간에 실패할 수 있습니다.
  • 서버 환경 미포함: 플러그인은 워드프레스 파일과 DB만 이전합니다. 서버 환경(PHP 버전, 확장모듈 등)은 별도로 맞춰야 합니다.

사이트 용량이 크거나 더 세밀한 제어가 필요하다면, 아래 수동 이전 방법을 추천합니다.


3. 방법 2 — 수동 이전 (권장)

수동 이전은 과정이 조금 더 복잡하지만, 용량 제한 없이 어떤 규모의 사이트든 이전할 수 있고 문제 발생 시 원인 파악이 쉽습니다.

Step 1: 기존 서버에서 백업

파일 전체 백업:

cd /var/www/html    # 워드프레스 설치 경로
tar -czf wp-backup.tar.gz .

데이터베이스 백업:

mysqldump -u DB사용자 -p --default-character-set=utf8mb4 DB이름 > wp-database.sql

--default-character-set=utf8mb4 옵션은 한글이 깨지는 것을 방지해 줍니다. 반드시 넣어주세요.

Step 2: 새 서버 환경 구성

기존 서버에서 확인한 정보를 바탕으로 새 서버를 세팅합니다.

  • 웹서버(Apache 또는 Nginx) 설치
  • PHP 설치 (기존과 같거나 호환되는 버전) 및 필요한 확장모듈 설치
  • MySQL 또는 MariaDB 설치
  • php.ini 설정값을 기존 서버와 유사하게 조정
  • Apache 사용 시 mod_rewrite 활성화, Nginx 사용 시 rewrite 규칙 설정

Step 3: 파일 업로드 및 DB 복원

파일 업로드:

백업 파일을 새 서버로 전송한 후 웹 루트 디렉토리에 해제합니다.

cd /var/www/html
tar -xzf wp-backup.tar.gz

데이터베이스 생성 및 복원:

# MySQL 접속 후 DB 및 사용자 생성
mysql -u root -p

CREATE DATABASE 새DB이름 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER '새DB사용자'@'localhost' IDENTIFIED BY '새비밀번호';
GRANT ALL PRIVILEGES ON 새DB이름.* TO '새DB사용자'@'localhost';
FLUSH PRIVILEGES;
EXIT;

# DB 복원
mysql -u 새DB사용자 -p 새DB이름 < wp-database.sql

Step 4: wp-config.php 수정

워드프레스 루트 디렉토리의 wp-config.php 파일을 열어 데이터베이스 정보를 새 서버에 맞게 변경합니다.

define('DB_NAME', '새DB이름');
define('DB_USER', '새DB사용자');
define('DB_PASSWORD', '새비밀번호');
define('DB_HOST', 'localhost');

Step 5: 도메인이 변경되는 경우 — URL 치환

도메인이 바뀌는 경우, 데이터베이스 내에 저장된 모든 URL을 새 도메인으로 변경해야 합니다.

⚠️ 중요: SQL의 REPLACE() 함수로 직접 치환하면 안 됩니다. 워드프레스 DB에는 직렬화(serialized)된 데이터가 많은데, 단순 문자열 치환은 직렬화 구조를 깨뜨려 사이트가 망가질 수 있습니다. 이것이 수동 이전에서 가장 흔한 실패 원인입니다.

반드시 아래 도구 중 하나를 사용하세요.

WP-CLI 사용 (권장):

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables

Search Replace DB 스크립트 사용:

Search Replace DB 스크립트를 서버에 업로드하고 웹 브라우저에서 실행하여 URL을 치환할 수 있습니다. 작업 완료 후에는 반드시 스크립트를 삭제해야 보안상 안전합니다.

도메인이 동일하다면 이 단계는 건너뛰고, DNS 설정만 변경하면 됩니다.


4. 이전 후 체크리스트

서버 이전이 끝났다면, 아래 항목들을 하나씩 확인합니다.

필수 확인 사항:

  • 고유주소(Permalink) 재저장: 관리자 > 설정 > 고유주소에서 아무 변경 없이 저장 버튼 클릭
  • SSL 인증서: Let’s Encrypt 등을 이용해 새 서버에 SSL 설치 및 HTTPS 정상 작동 확인
  • DNS 변경: 도메인의 A레코드를 새 서버 IP로 변경 (전파에 24~48시간 소요)
  • 파일 권한 설정: 디렉토리 755, 파일 644, wp-config.php는 640 또는 600
  • 캐시 플러그인 초기화: 기존 캐시 데이터를 모두 비우기
  • 모든 페이지 확인: 글, 이미지, 로그인, 관리자 페이지 등 주요 기능 테스트

DNS 전파 전 미리 테스트하는 방법:

DNS가 아직 전파되지 않은 상태에서도 로컬 PC의 hosts 파일을 수정하면 새 서버에서 사이트를 미리 확인할 수 있습니다.

# Windows: C:\Windows\System32\drivers\etc\hosts
# Mac/Linux: /etc/hosts

새서버IP    your-domain.com
새서버IP    www.your-domain.com

테스트가 끝나면 hosts 파일의 해당 줄을 삭제하는 것을 잊지 마세요.


마무리

워드프레스 서버 이전은 크게 어려운 작업이 아니지만, 사전 준비 없이 진행하면 예상치 못한 문제에 부딪히기 쉽습니다. 핵심을 정리하면 다음과 같습니다.

  1. 이전 전에 기존 서버 환경을 반드시 기록한다 — PHP 버전, 확장모듈, 설정값
  2. 백업은 파일과 DB 모두 — mysqldump 시 utf8mb4 옵션 잊지 않기
  3. 도메인 변경 시 URL 치환은 전용 도구를 사용한다 — SQL 직접 치환은 금물
  4. 이전 후 체크리스트를 꼼꼼히 확인한다 — 퍼머링크, SSL, 파일 권한 등

소규모 사이트라면 플러그인으로 충분하고, 용량이 크거나 세밀한 제어가 필요하다면 수동 이전이 더 안정적입니다. 이 가이드를 따라 차근차근 진행하면 큰 문제 없이 서버 이전을 완료할 수 있습니다.




댓글 남기기