워드프레스 멀티사이트 설정

워드프레스는 멀티사이트를 지원합니다. 즉, 하나의 도메인 아래에 다수의 사이트를 별로도 만들 수 있습니다.
메타사이트 또는 커뮤니티 사이트를 만들고자 한다면, 멀티사이트의 기능을 활성화시키고, 각각의  회원에게 독립된 블로그를 분양할 수 있습니다.

워드프레스 3.0 이전 버전에는 wordpressMU라는 별도의 소스가 공개되었지만, 3.0버전 이후부터는 멀티사이트 기능이 기본 코어 소스에 포함되어 배포되고 있습니다.

이제 여러분도 wordpress.org에서 배포하는 3.0이후의 소스로 wordpress.com과 같은 커뮤니티 사이트를 운영할 수 있습니다.  wordressMS showcase에서 실제 적용사례를 살펴보세요.

국내의 유사한 툴로는 텍스트큐브(textcube)를  다중사용자 설정으로 설치하여 티스토리(tistory.com)와 같은 서비스를 제공하는 것이 가능합니다.

워드프레스 멀티사이트(wordpress MS)는…

[notification_tip][arrowlist]

  • 1개의 소스를 설치하는 것만으로도 여러 개의 사이트(블로그)를 운영할 수 있습니다.
  • 1명이 여러 개의 사이트를 운영하거나, 회원가입을 기반으로 1개의 소스로 여러 명이 독립된 사이트를 운영할 수 있습니다.
  • 2차도메인(user.yoursite.com) 또는 user name의 폴더 단위(yoursite.com/user)로 설정할 수 있습니다.
  • wordpress domain mapping 또는 networks for wordpress 플러그인으로 각각의 사이트에 독립 도메인을 적용할 수 있습니다.
  • Network Admin은 서버에 설치된 테마와 플러그인을 전부 또는 선택하여 공유할 수 있습니다.
  • Dashboard는 사용자별로 생성되고, 최고관리자인 Network admin이 활성화됩니다.

[/arrowlist][/notification_tip]

워드프레스의 기본소스에는 멀티사이트 기능이 비활성화되어 있습니다. 새로 설치하는 경우나, 이미 설치된 워드프레스로 멀티사이트를 만들 수 있게 설정을 변경해 보겠습니다.
(참고 : http://codex.wordpress.org/Create_A_Network)

[notification_warning][arrowlist]멀티사이트 설정이 불가능한 경우

  • wordpress address(URL)과 Site address(URL)이 다른 경우. 즉 하부폴더(예,yourdomain.com/wordpress)에 설치하고 Dashboard에서 yourdomain.com으로 설정한 경우
  • wordpress address(URL)가 ‘:80′, ‘: 443″ 이외의 포트를 사용하는 경우

[/arrowlist][/notification_warning]

1.  만약을 위해서 데이터베이스를 백업합니다.

2. wp-config.php 파일을 열고 muitisite 구문을 설정하고, 저장 후 새로고침(F5) 합니다.

define('WP_ALLOW_MULTISITE', true);


3. [Dashboard]-[Tools]-[Network Setup] 메뉴가 생겼습니다.

만약 활성화된 plugin이 있다면 비활성화하라는 경고 메시지가 나올 겁니다.

Sub-domain 방식으로 설정한다면 DNS 설정이 추가로 필요하니 여기서는 간편하게 Sub-directories로 설정하겠습니다.

network setting

network setting domain

4. wp-contents 아래에 blogs.dir 폴더를 만듭니다.

blogs.dir 폴더는 쓰기가능(chmod 755)으로 설정하여야 합니다.

blogs.dir chmod 755

5. wp-config.php 파일을 다시 수정합니다.

wp-config.php

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

[notification_warning]

  • 5라인, 6라인의 코드는 제가 세팅한 경우이므로 위의 내용을 복사하지 마시고, [Dashboard]–[Setting]–[network setup]에서 보여주는 코드를 복사하세요.
  • 5라인, 6라인의 코드를 보면, 루트폴더에 워드프레스를 설치하였기 때문에 ‘/’로 표시됩니다. 만약 하위 wordpress라는 폴더에 설치하였다면 ‘/wordpress’ 로 표시가 될 것입니다.
[/notification_warning]

6. 루트에 .htaccess 파일 생성

워드프레스가 설치된 루트에 .htaccess 파일을 만들고 3번의 과정에서 안내된 내용을 추가합니다. (sub-directories 방식)

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]

아래는 sub-domain 으로 멀티사이트를 설정한 경우의 .htaccess 입니다.

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]
# END WordPress

7. 끝.

설정을 마치고 다시 로그인하면 Network Admin의 Dashboard 를 볼 수 있습니다.

 

8 Comments

  1. 잘봤습니다. 감사합니다..^^

    Reply
  2. test

    Reply
  3. 멀티사이트를 설치하고 나니 서브도메인으로 접속이 안되네요. 웹호스팅사에서 서브도메인 생성이 안되게 해놓았나봅니다. 서브도메인 강제로 연결해달라고 하면 연결 가능할까요?

    Reply
    • 서브도메인 방식으로 하려면 DNS 의 CNAME 설정으로 하여야 하기 때문에 호스팅사에 문의해야 하거나, 독립서버라면 별도의 네임서버 세팅이 필요합니다..

      Reply
  4. 내용잘 봤습니다. 감사합니다. 그런데, abc.com 사이트에 /www/wp/에 설치한 경우, url에 wp가 안나타나도록 하면서, 멀티사이트 세팅후에도 정상적으로 가동하게 하려면 어떻게 하면 될까요 ?

    Reply

Trackbacks/Pingbacks

  1. 워드프레스 블로그 이전 | jungbo - [...] http://eastsocial.co.kr/wordpress/?p=6 Share this:TwitterFacebookLike this:LikeBe the first to like this post. This entry was posted in 2)블로그. Bookmark …

Submit a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" extra="">

Share This