[워드프레스] 35. 멀티사이트 : 하나의 설치로 여러 사이트 (멀티사이트)

워드프레스 해부 35편 - 하나의 설치로 여러 사이트 (멀티사이트)

작성자

카테고리:

* 이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

(워드프레스 해부 ㉟) 멀티사이트

워드프레스 하나로 여러 사이트를 굴릴 수 있다. 이게 멀티사이트(Multisite)다. 사실 이 cozlab.app도 처음 구상은 “한 서버에 워드프레스 여러 개”였는데, 그 방법 중 하나가 바로 이 멀티사이트다(다른 하나는 워드프레스를 완전히 따로 여러 벌 까는 것).

켜는 법은 wp-config.php에 상수 하나. 그러면 도구 메뉴에 “네트워크 설정”이 생기고, 안내를 따르면 네트워크 관리자가 활성화된다. 사이트들은 서브도메인(a.example.com) 또는 서브디렉터리(example.com/a)로 나뉜다.

구조적으로는 DB(7편)에 wp_blogs, wp_site 같은 테이블이 추가되고, 사이트마다 wp_2_posts, wp_3_posts처럼 접두사(3편)에 번호가 붙은 테이블 세트가 생긴다. 코어·플러그인·업로드 용량은 공유하고, 콘텐츠만 사이트별로 분리되는 셈이다.

직접 해보기

# wp-config.php 에 추가하면 '네트워크 설정' 메뉴가 열린다
define( 'WP_ALLOW_MULTISITE', true );

# WP-CLI로 상태 확인
$ wp site list        # 멀티사이트면 사이트 목록이 나온다

✅ 확인 — WP_ALLOW_MULTISITE를 켜면 도구 → 네트워크 설정 메뉴가 생긴다. 다만 멀티사이트는 한 번 켜면 되돌리기 번거로우니, 진짜 여러 사이트가 필요할 때만 신중히 켜는 게 좋다. 사이트 하나면 굳이 쓸 이유가 없다.

흔히 막히는 지점 — 멀티사이트는 켜기 전에 서브도메인 vs 서브디렉터리를 먼저 정해야 한다 — 활성화 후엔 바꾸기 까다롭다. 서브도메인은 와일드카드 DNS·인증서가 필요하고, 플러그인/테마는 ‘네트워크 활성화’가 따로 있다. 단일 사이트로 충분하면 멀티사이트는 관리 복잡도만 는다.

서브도메인이냐, 서브디렉터리냐

멀티사이트를 켤 때 딱 한 번, 나중에 되돌리기 어려운 선택을 한다. 각 사이트를 서브도메인(site1.example.com)으로 둘지, 서브디렉터리(example.com/site1)로 둘지다.

항목서브도메인서브디렉터리
주소site.example.comexample.com/site
DNS와일드카드 DNS 필요불필요
SSL와일드카드 인증서단일 인증서로 충분
SEO각각 별개 사이트로 취급권위·링크가 한데 모임
적합완전 독립 사이트한 브랜드의 여러 섹션

검색 크롤러는 서브도메인을 별개 사이트로 보는 경향이 있어 봇 트래픽과 SSL 관리 부담이 늘고, 서브디렉터리는 권위가 한 도메인에 모여 SEO에 유리하다. 게다가 둘 사이를 나중에 바꾸는 건 설정 하나 바꾸는 게 아니라 고위험 작업이다. 그래서 시작할 때 신중히 정해야 한다.

켜는 순서

활성화는 순서대로 밟는다. 먼저 wp-config.php에 상수 하나를 넣고, 관리자에서 네트워크를 설정한 뒤, 안내대로 상수와 .htaccess를 마저 채운다.

/* 1) 먼저 이 한 줄 */
define( 'WP_ALLOW_MULTISITE', true );

/* 2) 도구 → 네트워크 설정에서 서브도메인/서브디렉터리 선택 후,
      안내에 따라 아래를 추가 */
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );   // 서브디렉터리면 false
define( 'DOMAIN_CURRENT_SITE', 'example.com' );

다시 로그인하면 상단 관리자 막대에 ‘내 사이트 → 네트워크 관리’ 메뉴가 생긴다. 여기서 사이트를 추가하고 전체를 관리한다.

슈퍼 관리자와 사이트 관리자

멀티사이트엔 역할이 하나 더 생긴다. 네트워크 전체를 다루는 슈퍼 관리자와, 자기 사이트만 다루는 사이트 관리자다. 테마·플러그인 설치는 슈퍼 관리자만 할 수 있고, 각 사이트 관리자는 네트워크가 허용한 범위 안에서만 쓴다. 플러그인·테마는 네트워크에서 한 번 설치해 공유하며, ‘네트워크 활성화’를 누르면 모든 사이트에 한꺼번에 켜진다.

멀티사이트를 피해야 할 때

편해 보이지만 함정도 분명하다. 코어·플러그인 업데이트가 네트워크 전체에 동시에 적용돼서, 한 사이트의 사정 때문에 전체를 못 올리는 상황이 생긴다. 한 사이트가 무거운 플러그인으로 문제를 일으키면 같은 인프라를 쓰는 다른 사이트도 흔들린다. 사이트들이 서로 완전히 독립적이어야 하거나 운영 주체가 다르다면, 차라리 워드프레스를 따로 여러 벌 까는 편이 낫다. 앞서 말했듯 cozlab이 결국 택한 것도 이 방향이었다.

무엇이 공유되고 무엇이 분리되나

멀티사이트에서 제일 헷갈리는 게 ‘어디까지 공유되느냐’다. 네트워크가 공유하는 건 워드프레스 코어, 설치된 플러그인·테마 파일, 그리고 사용자 계정이다. 반대로 각 사이트가 따로 갖는 건 글·페이지·설정·업로드 폴더다.

DB로 보면 구조가 선명하다. 사용자 테이블(wp_users·wp_usermeta)은 네트워크에 하나뿐이고, 그 위에 사이트마다 번호가 붙은 테이블 세트(wp_2_posts·wp_2_options…)가 새로 생긴다. 덕분에 한 사람이 여러 사이트에 각각 다른 권한으로 참여할 수 있다. 7편의 테이블 지도를 떠올리면 이 구조가 바로 이해된다.

대장정의 마지막 편은, 이 시리즈 실습에서 계속 함께한 그 도구 — WP-CLI로 워드프레스를 명령줄로 다루는 법이다.

자주 묻는 질문 (FAQ)

멀티사이트가 뭔가요?

하나의 워드프레스 설치로 여러 사이트를 운영하는 기능입니다. 테마·플러그인·업데이트를 공유해 관리가 편합니다.

멀티사이트는 언제 쓰나요?

여러 유사한 사이트를 한 곳에서 관리할 때 유용합니다. 완전히 독립적이어야 한다면 별도 설치가 나을 수 있습니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다