워드프레스 멀티사이트의 도메인을 변경하는 방법

워드프레스 관리자 페이지에서 사이트 주소를 간단히 변경할 수 있습니다. 하지만 워드프레스 멀티사이트의 기본 도메인 변경 방법은 일반 워드프레스 사이트에 비해 다소 복잡합니다. 이 글에서는 멀티사이트의 기본 도메인을 변경하는 방법에 대해 살펴보겠습니다.

먼저 이 작업을 수행하기 전에 DB 백업을 받아놓으시기 바랍니다. 데이터베이스 작업은 되돌릴 수 없기 때문에 잘못 수정할 경우 사이트에 접속하지 못할 수 있습니다. DB 백업은 phpMyAdmin에서 받을 수 있습니다.

[ 이 글은 2022년 3월 8일에 최종 업데이트되었습니다. ]

워드프레스 멀티사이트

멀티사이트는 하나의 워드프레스 설치로 여러 개의 사이트를 운영할 수 있는 네트워크입니다. 예를 들어, 동일한 사이트를 만든 후에 해당 사이트를 10개 혹은 20개 정도로 복제한 후에 사이트 제목과 내용을 변경하여 운영하는 경우(가령, 분양 사이트 홈페이지)에 멀티사이트를 이용하면 편리합니다.

그리고 다국어 사이트를 운영하는 경우에도 멀티사이트를 고려할 수 있습니다. 가령, 기본 언어로 사이트를 만든 후에, 각 언어 사이트로 복제한 후에 텍스트만 각 언어의 번역으로 대체할 수 있습니다("워드프레스 멀티사이트 다국어 버전 추가 작업" 참고).

하지만 멀티사이트의 단점도 있습니다. 실제로 운영해본 분들은 아시겠지만, 운영하다 보면 예상치 못한 문제가 발생하기도 합니다. 그리고 멀티사이트를 이용하다 서브 사이트를 분리하는 것이 쉽지 않을 수 있습니다. 또한, 멀티사이트에서 호환되지 않는 플러그인도 있고, 일반 워드프레스 사이트에서는 무료로 이용할 수 있는 플러그인이 멀티사이트에서는 유료로 판매될 수 있습니다(예: UpdraftPlus).

많은 사이트를 운영하는 경우, 멀티사이트가 거의 필수일 수 있습니다. 예를 들어, 30개 사이트를 운영하는 경우, 멀티사이트로 구성하면 하나의 워드프레스 설치에서 모든 사이트를 관리할 수 있지만, 개별적으로 설치하여 운영한다면 30개 사이트를 관리하는 것은 쉽지 않고 시간도 많이 소요됩니다.

DB 백업 받기

웹호스팅 업체 홈페이지에서 계정에 로그인한 후 phpMyAdmin으로 이동합니다.

카페24의 경우 상품에 따라 다를 수 있지만 일반적인 경우 서비스 접속관리 > MySQL 웹어드민을 클릭하여 phpMyAdmin에 접속할 수 있었습니다만, 몇 년 전에 phpMyAdmin 서비스를 종료했습니다. 카페24를 이용하는 경우 phpMyAdmin 툴을 먼저 설치하시기 바랍니다(참고).

Bluehost, SiteGround 등 cPanel을 지원하는 웹호스팅을 이용하는 경우 cPanel에서 phpMyAdmin을 검색하여 접근할 수 있습니다("해외호스팅 블루호스트에서 phpMyAdmin에 접속하는 방법" 참고).

phpMyAdmin에서 DB 백업 받기

내보내기 탭을 클릭한 후에 위와 같이 설정하고 실행을 클릭하여 DB 파일을 다운로드하여 잘 보관하도록 합니다.

DB 파일이 너무 큰 경우에는 SSH에 접속하여 다운로드하면 더 빠르고 안전하게 다운로드가 가능합니다.

플러그인을 사용하여 DB 백업하기

백업 플러그인을 사용하여 데이터베이스를 백업하는 것도 가능합니다. 멀티사이트 백업 플러그인은 다음 글을 참고해보세요.

멀티사이트에서 기본 도메인 변경하기

워드프레스는 serialize한 데이터를 데이터베이스에 저장하므로 이를 변경하면 손상될 수 있으므로 위에서 설명한 방법에 따라 미리 백업을 해 놓는 것이 안전합니다.

다음과 같은 5개 값을 업데이트해야 합니다. 테이블 프리픽스(table prefix)가 wp_가 아닌 경우 이 값을 실제 테이블 프리픽스로 바뀌면 됩니다.

  • wp_options: “siteurl”과 “home”
  • wp_site
  • wp_sitemeta: “siteurl” 항목
  • wp_blogs: 이전 도메인 이름이 포함된 “domains” 컬럼의 모든 항목
  • wp_#_options: 각 서브사이트에는 blog_id가 할당되어 있습니다. wp_#_options 테이블(#은 blog_id)을 찾아서 테이블 내의 “siteurl”과 “home”을 찾아서 업데이트해야 합니다.

변경할 때 도메인 형식은 원래 형식과 동일해야 합니다. 예를 들어, http가 없으면 http가 없는 형식으로 바꾸어야 합니다.

mysite.domain.com => mysite.newdomain.com

HTTP가 포함되어 있다면 HTTP를 유지해야 합니다.

http://mysite.domain.com => http://mysite.newdomain.com

워드프레스는 테이블에 따라 각 필드에 대하여 엄격한 규칙이 있습니다. wp_sitewp_blogs 테이블에는 http://를 포함할 수 없고 끝에 슬래시(/)를 붙이면 안 됩니다. 이와 달리 wp_options 테이블에서는 시작 부분에 http://가 있어야 합니다. wp_sitemeta 테이블의 경우 시작 부분에 http://가 있고, 끝 부분에 슬래시(/)가 포함되어야 합니다.

웹사이트에서 SSL을 사용하거나 www 버전에서 작동하도록 구성한 경우 이 설정을 유지해야 합니다. 예를 들어, SSL과 www 도메인 설정이 되어 있는 경우, 다음과 같이 변경할 수 있습니다.

https://www.mydomain.com => https://www.mynewdomain.com

중요: 대부분의 경우 wp-config.php 파일의 항목을 업데이트해야 합니다. 예를 들어, wp-config.php 파일에 멀티사이트와 관련하여 다음 라인이 추가되어 있는 경우:

define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'mysite.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

“mysite.com”을 원하는 도메인으로 변경하도록 합니다.

define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'newsite.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

이것으로 멀티사이트의 기본 도메인 변경 작업이 완료됩니다.

멀티사이트 사이트 주소 변경 후 문제가 발생할 경우

멀티사이트 주소 변경 후 Too Many Redirects와 같은 문제가 발생할 수 있습니다. 그리고 관리자 페이지에 로그인하려고 시도할 때

http://www.example.com/wp-login.php?redirect_to=http%3A%2F%2...

위와 같이 "/wp-login.php?redirect_to=http%3A%2F%2..." 주소로 리디렉션되는 경우도 있습니다.

경험상 사이트 주소를 변경하는 과정에서 오류가 발생했거나, .htaccess 파일이 잘못된 경우에 이러한 문제가 나타났습니다. 다음 글을 참고하여 문제 해결을 시도해보시기 바랍니다.

마치며

최근에 SiteGround(사이트그라운드)에 설치되어 있는 워드프레스 멀티사이트를 국내의 한 웹호스팅 업체로 이전하는 일을 맡은 적이 있습니다.

이 과정에서 몇 가지 오류를 접하게 되었습니다.

  • ERR_NAME_NOT_RESOLVED 오류: 서브도메인이 등록되어 있지 않기 때문에 서브도메인 이름을 찾을 수 없기 때문에 이 문제가 발생합니다. 웹호스팅에서 모든 서브도메인을 추가해주면 문제가 해결됩니다. (이 문제는 DNS 설정과 관련되어 있는 것 같습니다. DNS 정보를 제대로 설정하면 개별적으로 서브도메인을 추가해줄 필요가 없을 것 같습니다.)
  • wp-signup.php?new=...가 URL에 추가되는 문제: 이 문제와 관련하여 구글을 검색해보면 해결 방법이 나와있습니다. (가비아에서는 wp-config.php 파일에서 DB 호스트에 DB IP를 입력해주어야 합니다. PHP 버전을 변경한 후에 DB IP가 변경되어서 이런 문제가 나타난 것으로 밝혀졌습니다.ㅠㅠ)

이전을 완료하고 도메인까지 모두 변경했지만 일부 기능이 제대로 작동하지 않아서 의뢰인과 상의하여 SiteGround 내에서 도메인을 변경해보니 제대로 작동했습니다.

위의 방법을 응용하면 서브 사이트(예: example.com/en)를 메인 사이트로 변경하는 것도 가능합니다.

참고:

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

댓글 남기기

* 이메일 정보는 공개되지 않습니다.