워드프레스 서버 이전 방법 (WP-CLI로 사이트 옮기기)
호스팅을 바꾸거나 더 큰 서버로 옮길 때 워드프레스는 파일과 데이터베이스 두 가지만 제대로 옮기면 된다. 이 글은 WP-CLI를 이용한 워드프레스 서버 이전 순서를 백업, 새 서버 준비, 복원, 주소 변경, DNS 전환으로 나눠 정리한다. WP-CLI 기본 명령은 WP-CLI 명령어에 먼저 정리해 두었다.

워드프레스 서버 이전 전체 흐름
- DNS TTL을 미리 짧게 줄여 둔다(전환 하루 전쯤).
- 기존 서버에서 DB와 wp-content를 백업한다.
- 새 서버에 웹 서버, PHP, MySQL을 설치한다.
- 파일과 DB를 복원하고 wp-config.php를 맞춘다.
- 도메인이 바뀌면 주소를 일괄 변경한다.
- hosts 파일로 새 서버를 미리 확인한 뒤 DNS를 바꾼다.
워드프레스 서버 이전 1단계 백업
# 기존 서버
cd /var/www/html
sudo -u www-data wp db export /tmp/site.sql
sudo tar czf /tmp/wp-content.tar.gz wp-content
# 새 서버로 전송
scp /tmp/site.sql /tmp/wp-content.tar.gz newserver:/tmp/
압축과 전송은 tar 압축과 scp sftp 사용법에 정리했다. 용량이 크다면 rsync로 옮기는 것이 이어받기가 되어 안전하다.
워드프레스 서버 이전 2단계 새 서버에 복원
# 같은 버전의 워드프레스 코어 설치
cd /var/www/html
sudo -u www-data wp core download --locale=ko_KR
# DB 와 계정 만들기 (MySQL)
CREATE DATABASE wp DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'wp'@'localhost' IDENTIFIED BY '새_비밀번호';
GRANT ALL PRIVILEGES ON wp.* TO 'wp'@'localhost';
# wp-config.php 만들고 DB 가져오기
sudo -u www-data wp config create --dbname=wp --dbuser=wp --prompt=dbpass
sudo -u www-data wp db import /tmp/site.sql
# wp-content 덮어쓰기
sudo tar xzf /tmp/wp-content.tar.gz -C /var/www/html
sudo chown -R www-data:www-data /var/www/html
기존 wp-config.php에 있던 테이블 접두어(table_prefix)가 wp_가 아니었다면 새 설정에도 같은 값을 넣어야 한다. 소유자와 권한은 파일 권한을 참고하자.
도메인이 바뀐다면 주소 일괄 변경
sudo -u www-data wp search-replace 'https://old.example.com' 'https://new.example.com' --dry-run
sudo -u www-data wp search-replace 'https://old.example.com' 'https://new.example.com'
sudo -u www-data wp cache flush
도메인이 같다면 이 단계는 필요 없다. search-replace는 직렬화된 데이터까지 안전하게 바꿔 준다.
DNS 전환 전 미리 확인
내 컴퓨터의 hosts 파일에 “새서버IP 도메인”을 잠시 적어 두면, DNS를 바꾸기 전에 새 서버의 사이트를 실제 도메인으로 열어 볼 수 있다. 글, 이미지, 로그인, 플러그인이 정상인지 확인한 뒤 DNS를 바꾸고 hosts 줄은 지운다. HTTPS 인증서는 DNS가 새 서버를 가리킨 뒤 certbot으로 새로 발급한다.
전환 후 할 일
- 서치콘솔에서 크롤링 오류가 늘지 않는지 며칠 지켜본다(서치콘솔 색인 문제 해결).
- 새 서버에도 자동 백업과 인증서 갱신을 다시 설정한다.
- 기존 서버는 며칠 동안 그대로 두었다가 문제가 없으면 정리한다.
공식 이전 안내는 워드프레스 사이트 이전 문서에 있다.
워드프레스 서버 이전 정리
DB 내보내기, wp-content 압축, 새 서버에 코어 설치 후 복원, 필요하면 search-replace, hosts로 확인 후 DNS 전환. 이 순서만 지키면 서버 이전은 생각보다 단순하다. 전날 글은 느린 쿼리 개선 실전이다.
첫 댓글을 남겨보세요