개요

여러 개의 워드프레스 사이트를 서브 도메인(혹은 서브 디렉터리) 형태로 관리해야 하는 경우가 많습니다. 이 글에서는 워드프레스 멀티사이트 네트워크를 설치하는 방법에 대해 살펴보겠습니다.

멀티사이트를 구성하면 하나의 워드프레스 설치로 여러 개의 워드프레스 사이트를 관리할 수 있다는 점에서 편리합니다.

멀티사이트에 대해 WordPress Codex에서는 다음과 같이 설명하고 있습니다.

멀티사이트 네트워크란 동일한 WordPress 설치를 모두 공유하는 일단의 사이트로서 플러그인과 테마도 공유할 수 있습니다. 네트워크의 개별 사이트는 서버에 자체 디렉터리를 가지지 않다는 점에서 가상 사이트입니다. 다만, 공유하는 워드프레스 설치 내에서 미디어 업로드를 위한 개별 디렉터리를 가지고 데이터베이스에서 별도의 테이블을 가집니다.

wpmudev 글에 의하면 표준 워드프레스 설치에서는 사이트의 컨텐츠와 설정 저장을 위해 11개의 DB 테이블을 가지지만 멀티 사이트 네트워크에서는 이러한 DB 테이블 중 9개가 각 사이트에서 복제된다고 합니다.  그러므로 사이트가 많아지면 테이블 수도 많아지는 구조로 되어 있습니다.

멀티사이트 고려 사항

멀티사이트 네트워크의 장점

  1. 네트워크 관리자는 단일 알림판(대시보드)에서 여러 개의 사이트를 쉽게 관리할 수 있습니다.
  2. 각 사이트에 해당 사이트만을 관리할 수 있는 권한을 가진 자체 관리자를 둘 수 있습니다.
  3. 플러그인과 테마를 한 번만 다운로드하여 여러 사이트에 설치할 수 있습니다.
  4. 업데이트 관리 편의성.

멀티사이트 네트워크의 단점

  1. 네트워크 내의 모든 사이트가 동일한 리소스를 공유하므로 사이트가 다운되면 네트워크의 전체 사이트가 다운됩니다.
  2. 비정상적인 트래픽의 경우 서버 리소스 관리가 쉽지 않을 수 있습니다.
  3. 사이트가 해킹 당하면 관리하는 네트워크 내의 사이트가 해킹 당함.
  4. 일부 워드프레스 플러그인은 멀티사이트 네트워크에서 제대로 작동하지 않을 수 있습니다.

참고: Bluehost, Godaddy, Siteground 등과 같은 해외 호스팅 서비스를 이용하면 편리하게 서브 도메인을 만들어 사용할 수 있습니다(참고). 현재 이 블로그가 Bluehost VPS를 사용 중입니다. 고대디도 우리나라에 잘 알려져 있는데요, 블루호스트와 거의 비슷한 레벨이라 하네요. 고대디의 경우 사이트가 한글화되어 사용이 편리할 수 있을 것 같습니다. 하지만 라이브 채팅 지원을 제공하지 않아서 문제가 생길 경우 해결이 더딜 수 있습니다. (블루호스트나 사이트그라운드 등에서는 실시간 채팅을 통해 지원을 제공합니다.)

참고로 이 링크를 클릭하여 블루호스트에 가입하면 월 1달러가 할인된 월 최저 2.95달러에 서비스를 이용할 수 있습니다. 이 글의 링크를 클릭하여 서비스에 가입하면 제가 약간의 커미션을 얻을 수 있습니다. 하지만 저는 커미션을 위해 특정 서비스를 추천하지 않습니다. 다년간 사용하면서 느낀 점을 전달하기 위해 노력하고 있습니다. 여기에서 블루호스트에 대한 자세한 사항을 살펴볼 수 있습니다.

멀티사이트 설치하기

멀티사이트를 설치하는 방법은 비교적 간단합니다. (참고: 다시 멀티사이트를 설치해보니 이 글을 처음 작성할 때와는 일부 달라졌네요. 그래서 이 글을 내용을 최신 버전에 맞게 업데이트했습니다.)

우선 워드프레스를 보통의 경우처럼 설치합니다. 워드프레스가 이미 설치되었고 사용자 콘텐츠가 있는 경우 반드시 백업을 하도록 합니다.

설치가 완료되었다면 설정 > 고유주소에서 기본이 아닌 다른 설정으로 변경합니다.  (참고로 Codex 페이지에 보면 Pretty Permalinks로 설정하라고 되어 있네요.)

아래의 라인을 wp-config.php 파일에서 /* That's all, stop editing! Happy blogging. */ 바로 위에 추가하도록 합니다.

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );

관리자 페이지(대시보드)에서 새로 고침을 하면 네트워크 설치 메뉴가 추가됩니다. 도구 > 네트워크 설치 메뉴로 이동합니다.

Multisite1 compressor - 워드프레스 멀티사이트(Multisite) 설치하기

도구 > 네트워크 설치를 클릭하면 모든 플러그인을 비활성화하라면 메시지가 표시됩니다. 그러면 알림판에서 플러그인으로 이동하여 모든 플러그인을 일괄적으로 비활성화한 후에 도구 > 네트워크를 클릭합니다.

그러면 다음과 같은 화면이 표시됩니다.

워드프레스 멀티 사이트 설치
그림 2: 워드프레스 사이트의 네트워크 생성

또는, 다음과 같이 서브 도메인과 서브 디렉토리 중에서 선택할 수 있는 화면이 표시될 수 있습니다.

Multisite2 compressor - 워드프레스 멀티사이트(Multisite) 설치하기

첫 화면에서는 "새로운 설치가 아니므로 워드프레스 네트워크에서 사이트는 서브 도메인을 사용해야만 합니다. 서브 디렉토리 설치의 메인 사이트는 잠재적으로 기존의 링크를 파괴할 우려가 있으므로 수정된 고유주소 구조를 사용해야 합니다."라는 메시지가 표시되면서 서브도메인만 사용이 가능하도록 설정되어 있습니다.

이 경우에도 서브 디렉토리로 설정이 가능합니다. 서브 도메인과 서브 디렉토리 간 전환하는 방법은 기회가 될 때 별도의 글에서 다루어보겠습니다.

Microsoft의 경우 한국어 사이트 URL은 https://www.microsoft.com/ko-kr/입니다. 서브 디렉토리를 선택하는 경우, ko-kr과 같이 서브 디렉토리를 설정하면 기존의 링크를 파괴할 가능성이 줄어들 것 같습니다.

맨 아래의 "설치"를 클릭하면 다음과 같은 화면이 나타납니다.

워드프레스 멀티사이트
그림 3: 네트워크 활성화

지시에 따라 1 부분의 코드를 복사하여 wp-config.php 파일의 /* That's all, stop editing! Happy blogging. */ 바로 위에 추가합니다. 그리고 2 부분의 코드를 .htaccess 파일에서 기존 워드프레스 규칙을 대체합니다. 그런 다음 다시 로그인하도록 합니다.

그러면 그림과 비슷하게 네트워크 멀티사이트를 관리할 수 있도록 대시보드 표시줄에 "내 사이트"라는 메뉴가 추가되어 있습니다.

WordPress Multisite Dashboard
그림 4: 네트워크 관리자

이제 새로운 사이트를 추가해봅니다. 사이트 > 사이트 추가를 클릭합니다.

멀티사이트 추가
그림 5: 새로운 사이트 추가

적절히 설정한 후에 "사이트 추가"를 클릭하면 사이트가 추가됩니다.

개별 사이트에서 사용할 수 있는 테마 지정하기

개별 사이트에서 사용할 수 있는 테마를 지정하려면 사이트 > 모든 사이트로 이동한 후에 원하는 사이트 위에 마우스를 올리고 "편집"을 클릭합니다.

멀티사이트 테마 설정하기
그림 6

그러면 "사이트 편집" 화면이 표시됩니다. "테마" 탭을 누르고 원하는 테마를 선택하여 활성화해줍니다.

멀티사이트에서 테마 설정하기
그림 7. 사이트 편집

이제 그림 6에서 방금 활성화할 테마를 지정한 사이트 이름 위에 마우스를 올리고 "알림판"으로 이동하여 해당 사이트에 사용할 테마를 선택할 수 있습니다.

이외에 사용할 수 있는 플러그인을 지정하려면 내 사이트 > 네트워크 관리자 > 플러그인에서 설정하면 됩니다.

그림 8

참고로 멀티사이트에서 지원되지 않는 플러그인도 있을 수 있습니다. 가령 WP-Members가 설치되어 있는 상태에서 플러그인을 네트워크 활성화하면 오류가 발생하게 되네요.

유용한 플러그인 - WordPress MU Domain Mapping

이 플러그인을 사용하면 블로그/사이트를 다른 도메인에 매핑시킬 수 있습니다. 설정 방법은 이 글을 참고해보세요.

워드프레스 4.5 이상부터는 도메인 매핑 기능이 내장되어 있어서 쉽게 도메인 매핑이 가능합니다. 이 글을 참고해보시기 바랍니다.

참고: 다국어 사이트를 구축하려는 경우 WPML과 같은 플러그인을 사용하면 보다 수월하게 다국어 사이트 구축이 가능합니다. WPML에 대한 자세한 내용은 이 글을 참고해보시기 바랍니다.

멀티사이트로 다국어를 운영하려는 경우에는 "멀티사이트로 다국어 구축하기" 글을 참고해보시기 바랍니다.

References:

참고:

23 개 댓글

  1. 왜 해당 방법처럼 하게되면 로컬호스트 IP가 나오면서 접속이 안되는걸까요? 웹호스팅 서버인 AWS Lightsail에서는 일단 공식적으로 워드프레스 멀티사이트 이미지도 제공하고 있거든요. 설정 화면까진 진행되고 이후 wp-config와 .htaccess 를 수정하게되면 홈페이지 접속이 안되네요. 정확히는 첫페이지까진 접속이 되는거같은데.. 그이후는 127.0.0.1/wordpress/주소등등 으로 탈바꿈되고 에러가 ㅠ.ㅠ

    • 안녕하세요, SOUND님.

      다음 라인을 wp-config.php 파일에 추가하여 문제가 해결되는지 확인해보시겠어요?

      define( 'MULTISITE', true );
      define( 'SUBDOMAIN_INSTALL', false );
      define( 'DOMAIN_CURRENT_SITE', '127.0.0.1' );
      define( 'PATH_CURRENT_SITE', '/wordpress/' );
      define( 'SITE_ID_CURRENT_SITE', 1 );
      define( 'BLOG_ID_CURRENT_SITE', 1 );
      /* That’s all, stop editing! Happy blogging. */

  2. 제가 원하는 사이트를 만들려면 멀티사이트가 되면 될꺼 같은데
    멀티사이트의 개념이해가 부족하여 문의드립니다.

    1.메인사이트(A테마, d/e/f플러그인활성화중)에서 설치된 테마(A,B,C)와 플러그인(d,e,f)이 있는 상황에서
    2.멀티사이트 테마를 A로 선택이 되는것인지? (즉, 중복은 안되는것인지)
    3.만약, A가 선택이 된다면 그 설정내용(css, function.php)은 각각 설정이 가능한것인지? 아니면 메인의 설정을 그대로 적용되는것인지?
    4.만약, A가 선택이 안되어, B를 선택하는경우에
    5.멀티사이트에서 플러그인을 d,e,f 를 사용할 수 있는지?
    6.만약, d,e,f가 선택이 된다면 그 설정내용은 메인사이트와 동일한것인지? 아니면 별도로 설정이 가능한것인지?
    7.즉, 멀티사이트는 호스팅,도메인을 추가로 구매하여 테마와 플러그인을 설치했을때와 동일하게 별개로 설정 및 내용을 작성 할 수 있는것인지?
    이것이 궁금합니다.

    이를 시험하기 위해서 멀티사이트를 설정해보았지만, cafe24에서는 서브도메인이 되지 않는다고 하여, 확인을 할 수가 없었습니다.
    그래서, 만약, 멀티사이트의 개념이 분명해지면, 여기서 추천한 'bluehost'를 사용할 것을 염두하고 있습니다. 이 글을 보면 거기서는 되는것 같아서요. 저는 지금까지 cafe24만 사용을 했는데, 멀티사이트라는 기능을 알게되어서 이를 확인하다가 이 글을 읽고 문의드립니다.

    감사합니다.

    • 안녕하세요?

      다음 답변을 참고해보세요:

      멀티사이트는 하나의 워드프레스 설치로 여러 개의 워드프레스 사이트를 운영할 때 유용합니다. 멀티사이트를 이용할 경우 테마, 플러그인 파일을 공유하게 되고, (DB에 저장되는) 설정은 개별 사이트에서 다르게 설정할 수 있습니다.

      2. 멀티사이트의 각 사이트에서 중복으로 테마 선택이 가능합니다. 다른 테마를 선택하는 것도 가능하고요.
      3. CSS는 테마 디자인 > 사용자 정의하기에서 개별적으로 추가하면 됩니다. 함수 파일의 경우 get_current_blog_id() 함수를 사용하여 사이트에 따라 다른 코드를 적용할 수 있습니다. 즉, 테마 (자식 테마 사용) 내의 함수 파일에 다음과 같은 형식으로 추가할 수 있습니다.

      function function_to_call(){

      if( get_current_blog_id() === 1 ){
      // Return something if the site ID matches the number one...
      }

      // Return something if the site ID does not match the number 1
      // 사이트 ID가 1과 일치하는 경우에 적용되는 코드
      }
      add_filter( 'filter_name', 'function_to_call' );

      (출처: https://stackoverflow.com/questions/28656909/wordpress-multisite-add-function-to-functions-php-to-only-affect-1-site)

      5~7. 플러그인은 사이트마다 다르게 활성화하는 것이 가능합니다. (테마와 플러그인의) 설정도 개별 사이트마다 별도로 할 수 있습니다. 다만, 테마 소스 파일을 FTP를 별도로 수정하는 경우에도 동일하게 적용됩니다. 그런 경우에도 get_current_blog_id() 함수를 사용하여 사이트마다 다르게 플러그인을 수정할 수 있습니다. (플러그인 소스 파일을 직접 수정하는 것은 권장하지 않음).

      도메인을 추가할 경우 도메인 매핑을 하여, 개별 사이트에 다른 도메인을 매핑시킬 수 있습니다.

      사이트에 따라 플러그인을 활성화/비활성화하려면 네으워크 관리자에서 플러그인에 대하여 "네트워크 비활성화"를 클릭하여 네트워크 비활성화시켜야 합니다.

      https://www.screencast.com/t/kVMkVbkTjbuW

      스크린샷을 참고해보세요. 그러면 개별 사이트에서 해당 플러그인이 기본적으로 비활성화되어 있고, 사용자가 "활성화"를 클릭하여 활성화시킬 수 있습니다.

      참고로 다음 글에 있는 링크를 클릭하여 블루호스트를 가입하면 월 1달러 할인된 월 최저 2.95달러부터 서비스를 이용할 수 있습니다. (참고로 저는 블루호스트 공유호스팅과 VPS, 사이트그라운드, 카페24 등에서 호스팅되는 사이트들을 직접 운영하거나 관리하고 있고, 이 블로그는 Bluehost VPS에서 운영되고 있습니다.)

      https://www.thewordcracker.com/miscellaneous/introducing-bluehost/

      추가 문의사항이 있으시면 알려주세요.

  3. 좋은 정보 감사합니다^^
    카페24 서버에 멀티사이트를 구축했습니다.
    여기에 도메인을 추가로 달고 싶은데, (예로들면 abc.com과 abc.kr이 같은 ip로 열리게끔)
    도메인을 추가했더니 http://abc.com/wp-signup.php?new=abc.kr 페이지로 이동을 하더라구요.
    이건 혹시 해결할 방법이 없을까요ㅠ

    • 구글을 검색해보면 여러 가지 해결 방법이 나올 것입니다.
      저도 비슷한 문제로 고생한 적이 있습니다. 하지만 구글에서 제시하는 방법이 제대로 작동하지 않았습니다.
      https://avada.tistory.com/795

      루트에는 카페24에서 제공하는 도메인을 연결하고, 멀티사이트의 하위 블로그에 각각 abc.com과 abc.kr을 연결하여 테스트해보시기 바랍니다.

  4. 안녕하세요.
    혹시 두개의 워드프레스 사이트를 회원만 서로 공유하게 mysql을 설정할수없을까요?

    • 안녕하세요?

      멀티사이트용 Single Sign On 플러그인이 있습니다.

      https://www.thewordcracker.com/basic/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EB%A9%80%ED%8B%B0%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%8B%B1%EA%B8%80-%EC%82%AC%EC%9D%B8%EC%98%A8sso-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8/

      하지만 업데이트가 안 된 지 오래 되어 제대로 작동할지는 모르겠습니다.

      다음 내용도 참고해보세요.

      Let your blogs share the same user table. In your blogs wp-config.php files add:

      define('CUSTOM_USER_TABLE', $table_prefix . 'my_users');
      define('CUSTOM_USER_META_TABLE', $table_prefix . 'my_usermeta');
      Important note from Codex:

      Please note that permissions in the user_meta tables are stored with the table prefix of the site. So in the CUSTOM_USER_META_TABLE one must have entries for each site using that table. At the very least for the administrator, to avoid the "you do not have permissions error" you should have:

      prefix1_capabilities = a:1:{s:13:"administrator";b:1;} and prefix2_capabilities = a:1:{s:13:"administrator";b:1;} etc

      • 네트워크 설정 성공하고 config.php에
        define('CUSTOM_USER_TABLE', $table_prefix . 'my_users');
        define('CUSTOM_USER_META_TABLE', $table_prefix . 'my_usermeta');추가 했는데도 연동이 안되네요... 어디서 잘못됬는지..

      • 안녕하세요?

        위의 내용은 참고하여 응용하셔야 할 것 같습니다. 다음 글에서 구체적인 코드가 나오는데 한번 따라해 보시기 바랍니다. (혹시 모르니 백업을 철저히 하시기 바랍니다.)

        https://wordpress.stackexchange.com/questions/272122/single-sign-on-between-two-wordpress-website

      • 연동이 안되네요..여기도 참조해서 해봤는데 연동 자체가 안되네요.
        https://kinsta.com/blog/share-logins-wordpress/

      • Alternatively you may opt for a multisite + BuddyPress install where subsites share users thanks to BuddyPress.

        멀티사이트에 BuddyPress를 설치하면 BuddyPress를 통해 사용자들을 공유할 수 있다고 하네요.

        이 방법을 한 번 테스트해보시기 바랍니다.

        문제가 잘 해결되기를 바라겠습니다.

  5. 안녕하세요.
    멀티싸이트 셋팅을 하였는데 내싸이트 아래에 네트웍관리자 아래 기존싸이트가 보입니다.
    싸이트 추가를 했는데 기존싸잍 아래안보이는데 답변좀 부탁드립니다.
    각각의 싸이트는 생성되었습니다.
    수고하십시요.

    • 안녕하세요?
      멀티사이트를 제대로 설정했고 이상이 없다면 보이는 것이 정상입니다.
      http://www.thewordcracker.com/support-system/ 페이지에서 워드프레스 URL과 (임시) 관리자 정보를 알려주시겠어요? 그러면 무엇이 문제인지 한번 확인해보겠습니다.

      • 안녕하세요?

        현재 제가 테스트로 멀티사이트를 하나 추가했습니다.
        보시면 아시겠지만 새로 추가한 사이트는 정상적으로 표시됩니다.
        하지만 사이트의 관리자 페이지로 접속하면 "xxxx.cafe24.com에서 리디렉션한 횟수가 너무 많습니다."라는 오류가 발생합니다.

        분명 문제가 있는 것 같습니다.
        처음부터 하나씩 짚어가면서 다시 설치해보시면 좋을 듯 합니다.
        wp-config.php 파일과 .htaccess 파일도 잘 한번 체크해보시기 바랍니다.

        그래도 잘 안 되면 정식으로 서비스를 의뢰해주시면 솔루션을 찾아봐드릴 수 있을 것 같습니다.

      • 답변감사합니다..원래리디렉션한 횟수에러가 없었는데 이것저것 만지다보니 그렇게 되었습니다.
        추가에서 보이는데 어떻게 하셨습니까..몇번을 데이타베이스 지우고 해도 전 네트워크 관리자에 안나오던데. 답변좀 주시면 감사하겠습니다.
        다지우고 다시 해볼생각입니다.

      • 현재 문제가 있기 때문에 멀티사이트를 생성하면 보일 수도 있고, 안 그럴 수도 있습니다.

        저는 멀티사이트를 두 개 만들어 테스트하고 있는데, 그 중 하나( http://www.thewordcracker.com/simple/ )가 문제가 되어 오늘 데이터베이스를 삭제하고 다시 복원하느라 애를 먹었습니다.

        멀티사이트를 사용하다 보면 이상한 문제가 발생하는 경우가 간혹 있습니다.

        그래서 초기에 잘 판단하여 멀티사이트를 사용할 것인지, 아니면 개별적으로 설치하여 사용할 것인지, 혹은 다국어 사이트를 구축하는 경우 WPML 같은 플러그인을 사용할 것인지를 결정하는 것이 좋을 듯 합니다( http://www.thewordcracker.com/basic/%EB%8B%A4%EA%B5%AD%EC%96%B4-%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EA%B0%80%EC%9D%B4%EB%93%9C-wpml-polylang-%EB%A9%80%ED%8B%B0%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B9%84%EA%B5%90/ 참고해보세요). 나중에 문제가 되면 처음부터 시작해야 할 수 있습니다.

        다시 처음부터 설치해보시기 바랍니다.

      • 처음부터 하나씩 짚어가면서 다시 설치해보시면 좋을 듯 합니다.
        특히 wp-config.php 파일과 .htaccess 파일을 잘 체크해보시기 바랍니다.

  6. http://www.thewordcracker.com/simple 에 테스트로 멀티사이트를 설치해보았습니다. 서브도메인을 지원하는 경우 쉽게 서브도메인으로도 가능합니다.

    • 안녕하세요?

      그대로 따라하면 안 될 이유는 없을 것 같습니다. 테스트는 카페 24에서 했습니다.
      일부 서버에서는 .htaccess 파일 쓰기가 안 되도록 막을 수도 있으니 그런 부분도 체크해보시기 바랍니다.
      처음부터 하나씩 체크하면서 다시 해보시고, 그래도 잘 안 된다면 웹호스팅 업체와 한 번 이야기해보시기 바랍니다.
      그럼, 즐거운 하루 되시기 바랍니다.

댓글 남기기

댓글을 입력해주세요!
이름을 입력해주세요