워드프레스 멀티사이트 생성하기

출처 : http://eastsocial.co.kr/wordpress/?p=6

 

 

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

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

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

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

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

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

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

멀티사이트 설정이 불가능한 경우 

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

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

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

1
define('WP_ALLOW_MULTISITE', true);

wp-config.php


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

1
2
3
4
5
6
7
define( 'MULTISITE', true );
 define( 'SUBDOMAIN_INSTALL', false );
 $base = '<strong>/</strong>';
 define( 'DOMAIN_CURRENT_SITE', '<strong>gorkii.com</strong>' );
 define( 'PATH_CURRENT_SITE', '<strong>/</strong>' );
 define( 'SITE_ID_CURRENT_SITE', 1 );
 define( 'BLOG_ID_CURRENT_SITE', 1 );

 

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

6. 루트에 .htaccess 파일 생성

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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 를 볼 수 있습니다

 

 

Leave a Reply

Your email address will not be published.