[워드프레스] 멀티 사이트(복수 홈페이지) 구축하기.

워드프레스(WordPress)로 홈페이지를 운영하다 보면 멀티 사이트(여러개의 홈페이지)를 만들일이 생긴다. 유랑인은 다국어 홈페이지 운영을 위해 이 작업을 했는데 관련정보가 필요하신 분이 많을 것 같아 공유하게 되었다. 워드프레스가 영어태생이다 보니 한글로 된 자료가 많이 부족해 유랑인도 워드프레스에 입문할 때 애먹었던 적을 생각하면 한글자료를 조금이나마 늘려두고 싶은 욕심도 없지않아 있다.^^

자료는 외국것을 참고하였으며 이것은 그것을 따라한 수준에 지나지 않는다. 샘플은 직접 캡춰한 것을 사용했지만.(웃음)

워드프레스로 멀티 사이트를 만들기 위해선 자신의 서버(계정)가 Rewrite Mode를 지원 하는지 확인해 보아야 한다. < 참고 :  자신의 홈페이지 PHP값 확인하는 방법 > Rewrite Mode를 지원한다면 아래의 순서를 참고하여 진행하면 된다.

* 이 작업을 진행하기 전에 두 파일을 반드시 백업(Backup)하자. 백업은 필수다!! 문제가 생길경우 복구해야 하니까.

wp-config.php 편집 (1차)

wp-config.php를 불러와 ‘/* That’s all, stop editing! Happy blogging. */’ 라고 써진 부분을 찾는다. 그 위에 아래의 코드를 추가한 다음 저장을 해 준다.

/* 복수 홈페이지 */
define('WP_ALLOW_MULTISITE', true);

네트워크 설정

워드프레스에 로그인 >> 대시보드 >> 도구(Tools)로 들어가면 네트워크 설정(Network Setup)이란 항목이 새로 생성되어 있을 것이다. 그것을 클릭하여 네트워크 이름(Network title)과 네트워크 관리자 이메일을 확인하고 변경사항이 있으면 수정해준다. 그럼 특정한 코드(아래문단에 있음)를 .htaccess 파일과 앞서 수정한 wp-config.php 에 넣으라는 화면이 나온다.

wp-config.php 편집 (2차)

wp-config.php를 불러와 ‘/* That’s all, stop editing! Happy blogging. */’ 라는 주석위에 아래의 코드를 붙여넣고 저장한다. define(‘DOMAIN_CURRENT_SITE’, ‘urang.in’); 에서 ‘urang.in’ 은 자신의 홈페이지 주소로 바꾸어 주자.

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'urang.in');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1)

서브 도메인을 사용하고 싶다면 define(‘SUBDOMAIN_INSTALL’, false); 의 false를 true로 바꾸면 되는데, 이렇게 하게 될 경우 ‘.htaccess’ 의 설정값을 달리 해야한다는 이야기가 있으므로 주의가 필요하다. 유랑인도 해보지 않았기에 여기엔 적지 않았다.

.htaccess 편집

.htaccess를 불러와 <IfModule mod_rewrite.c>와 </IfModule> 사이의 값을 지우고 아래의 값을 넣어준다. 파일이 보이지 않을경우 ‘숨김파일 표시’를 하면 나온다. * 이전에 이 파일을 건드린 적이 있다면 자신이 건드린 속성값은 놔두고 진행하자.

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files

RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin

RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress

멀티 사이트 만들기

위 과정을 모두 마쳤으면 워드프레스에 로그인 한 다음 아래의 그림을 참고해 사이트 추가작업을 해 준다.

wp-config.php와 .htaccess을 수정하면 위와 같이 네트워크 관리자가 활성화 된다.
wp-config.php와 .htaccess을 수정하면 위와 같이 네트워크 관리자가 활성화 된다.
새로추가를 클릭한다.
새로추가를 클릭한다.
사이트 주소와 관리자 정보를 입력해 준다.
사이트 주소와 관리자 정보를 입력해 준다.
멀티 사이트(복수 홈페이지) 작업이 완료된 화면.
멀티 사이트(복수 홈페이지) 작업이 완료된 화면.

마무리 설정

사이트 추가가 끝나면 기존 홈페이지와 새로 생성한 홈페이지에 ‘저장공간 제한(Limit)’이 걸리게 된다. 기본값은 10MB인데 사진 몇 장 올리면 금방 차버리니 미리 변경해주는게 앞으로도 편하다.

멀티 사이트 작업 후 보이는 용량제한
멀티 사이트 작업 후 보이는 용량제한.

저장공간 설정에 관한 것도 따라하기 쉽게 그림을 준비했다. 네트워크 설정 >> 사이트 >> 편집순으로 진행하여 ‘설정’탭을 클릭한 다음 아래의 그림을 참고하여 진행하자.

설정탭에서 사이트 업로드 공간 할당량을 수정해준다.
설정탭에서 사이트 업로드 공간 할당량을 수정해준다.
 용량을 확장한 결과~
용량을 확장한 결과~

관리자 아이디 통합(선택사항)

혼자서 여러개의 사이트를 운영 하고자 한다면 관리자 아이디를 하나로 통합해 놓는게 편하다.  네트워크 설정 >> 사이트 >> 편집으로 들어가서 ‘사용자’ 탭을 클릭한 다음 아래의 그림을 참고하여 진행하자.

현재 사용하고 있는 관리자 정보를 입력해주고 사용자 추가를 눌러준다.
사용자 통합이 완료된 화면
사용자 통합이 완료된 화면

초고작성 : 2013.07.20 / 1차 수정 : 2013.08.13

댓글 10 개

댓글 쓰러가기 →

멀티사이트 시도하다가 구글느님의 지시를 따라 유랑인님의 블로그까지 오게되었네요.

좋은 글 감사드립니다. 질문이 있어 이렇게 댓글 남깁니다.

마무리 설정 바로 직전에 새로운 사이트 추가단계가 자동으로 생성이 되나요? 아니면 해당 디렉토리를 따로 ftp로 만들어서 워드프레스를 따로 하나 더 설치해야 하는건가요?
제 경우에는 유랑인 님이 알려주신 글처럼 똑같이 진행이 되었는데, URL에 서브 디렉토리까지는 형성이 되고 그 디렉토리로 브라우징을 시도해보니 404에러만 뜨더군요..
답변 부탁드리겠습니다.
감사합니다.

안녕하세요 최정길님. 댓글 감사드립니다.^^ 저의 글대로 따라 하셨다면 FTP에서 디렉토리를 별도로 생성하실 필요는 없습니다. 만일, 404에러가 나는경우는 아래의 링크를 참고하셔서 해결하실 수 있습니다. 이렇게 해도 해결이 안되는 경우에는 호스팅사에 한번 문의를 해 보시기 바랍니다. 드문 경우지만 호스팅사에서 이 설정을 못하게 막아놓았을 수도 있습니다.
http://wordpress.org/support/topic/multisite-new-sites-not-found

안녕하세요
좋은 정보 항상 감사드려요.
멀티사이트를 구성하려고
1단계 즉 wp-config.php를 불러와 ‘/* That’s all, stop editing! Happy blogging. */’ 라고 써진 부분을 찾는다. 그 위에 아래의 코드를 추가한 다음 저장
/* 복수 홈페이지 */
define(‘WP_ALLOW_MULTISITE’, true);
을 한다음
워드프레스에 로그인 >> 대시보드 >> 도구(Tools)로 들어가면
네트워크 설정(Network Setup)이란 메뉴가 안뜨는데요..
어떻게 해야 할까요~?

안녕하세요~
위의 사항은 해결했는데요
이번에는 wp-config.php와 .htaccess에 하기와 같이 코드를 복사해서 붙여넣고
워드프레스 관리자 로긴하면, 404가 떨어져서 관리자페이지를 볼수없네요..
무엇이 문제일까요?

wp-config.php 현재 내용
/*Mulitisite*/
define(‘WP_ALLOW_MULTISITE’, true);
define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, true);
define(‘DOMAIN_CURRENT_SITE’, ‘ogroup.kr’);
define(‘PATH_CURRENT_SITE’, ‘/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);
/* That’s all, stop editing! Happy blogging. */

.htaccess 내용

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

# END WordPress

해결했습니다~^^;; 등록한 글 삭제버튼이 없어서..삭제해주셔두 되요

현재 해외에 있는 관계로 확인이 많이 늦었네요.^^
해결하셨다니 다행입니다.

안녕하세요 유랑인님, 좋은 글 잘 보았습니다.
유랑인님의 글을 보고 어찌어찌해서 sub-directory 형식으로 멀티 사이트를 열였습니다.
두 사이트는 별도의 theme을 적용했는데요, 그래서 각 사이트를 통해서 가입한 사용자가 각 각의 network에서 보이네요. 실제로 wp_user은 같이 쓰는데 말이죠. WP에서 어느 곳을 통해서 들어 왔는지 기록해 놓는 자료가 별도로 존재하는건지 혹시 아시는 바가 있는가 싶어 질문 남기고 갑니다. 그리고, 이런 경우에 서로 다른 theme이지만 user를 공유하고 싶은 경우에는 어떤 좋은 방법이 있을까요? 너무 뜬금없는 질문해서 죄송합니다.
좋은 하루 되십시요~

-거북군 드림.

안녕하세요, 거북군님. 개인사정으로 답변이 늦어서 죄송합니다. 저도 워드프레스는 혼자서 끙끙대며 배워가는 중이라 거기까지는 아는바가 없어서 이렇다 할 답변을 드리기가 어렵네요.
일단 유저 접속로그에 관한것은 플러그인이 있는 것 같습니다. (참고 : http://stackoverflow.com/questions/2433506/wordpress-plugin-to-track-logged-users-activity ) 그리고 멀티사이트에 다른테마를 적용+ 유저 통합을 희망하시는 것 같은데, 유저 통합까지는 제가 쓴 글을 참고하셔서 진행하시고 이다음에 다시 로그인 하셔서 네트워크 상에 나오는 각각의 사이트를 선택하셔서 테마변경이나 기타 작업을 수행하시면 되겠습니다. 현재는 멀티사이트 기능을 사용하고 있지 않아 오래된 기억을 더듬어서 답변해 드렸는데 도움이 되실련지 모르겠습니다. 연휴 잘 보내십시오.^^

안녕하세요? 유랑인님, 답변 감사합니다.
두 사이트 간의 유저 통합에 대해서 제가 발견한 것이 있어 정보 공유차 글 남깁니다.
두 theme 모두 wp_users 테이블에 사용자 정보를 보관하고 있습니다. 문제는 서로 다른 theme이 login을 할 때 authorization을 하는 부분이 다르더군요. 두 theme 모두 기본적으로 user id와 password 를 확인하는 것 까지는 동일했는데, 한 쪽 theme에서 이 사용자가 해당 theme의 사용자인지를 확인하는 로직이 하나 더 있었고, 이것이 로그인을 막았었네요. 이 부분을 좀 더 확인해 보려면 theme이 아닌 기본 wordpresss로 multi-site를 구성하고, 이게 multi-site로 생성될 때 기본적으로 추가되는 로직인지를 살펴보면 좋을 것 같습니다. ( 저도 시간이 없어서 확인은 못 해 봤지만요 ^^ )
아무쪼록 좋을 글과 그에 대한 답변에 너무도 감사드립니다. 좋은 하루 되십시요~

안녕하세요? 유랑인님, 답변 감사합니다.
두 사이트 간의 유저 통합에 대해서 제가 발견한 것이 있어 정보 공유차 글 남깁니다.
두 theme 모두 wp_users 테이블에 사용자 정보를 보관하고 있습니다. 문제는 서로 다른 theme이 login을 할 때 authorization을 하는 부분이 다르더군요. 두 theme 모두 기본적으로 user id와 password 를 확인하는 것 까지는 동일했는데, 한 쪽 theme에서 이 사용자가 해당 theme의 사용자인지를 확인하는 로직이 하나 더 있었고, 이것이 로그인을 막았었네요. 이 부분을 좀 더 확인해 보려면 theme이 아닌 기본 wordpresss로 multi-site를 구성하고, 이게 multi-site로 생성될 때 기본적으로 추가되는 로직인지를 살펴보면 좋을 것 같습니다. ( 저도 시간이 없어서 확인은 못 해 봤지만요 ^^ )
아무쪼록 좋을 글과 그에 대한 답변에 너무도 감사드립니다. 좋은 하루 되십시요~

유랑인 에 응답 남기기 응답 취소