태터툴즈 단일사용자와 다중사용자

Posted 2006.02.17 15:27 by PAPACHA

먼저, 구현이 앞서다 보니 사용자 매뉴얼이 많이 준비되어 있지 않아 죄송합니다.
태터툴즈의 단일사용자와 다중사용자에 대해 비공식적으로 설명 드리고자 합니다.

여러 분이 설치한 한 개의 태터툴즈로 한 블로그만 제공하는 것이 단일사용자 모드이며, 여러(1개 이상) 블로그 제공를 제공하는 것이 다중사용자 모드입니다. 또한 다중사용자 모드는 도메인 또는 패스로 그 사용자를 식별합니다.

단일사용자 모드
오직 한 블로그만을 서비스한다.
다중사용자 모드
한 개 이상의 블로그을 서비스한다.

기본적으로 태터툴즈 1.x 코어는 다중사용자기반이며, 위 정의에서 보듯이 다중사용자 모드가 단일사용자 모드를 포함합니다.

이제 QnA 형식으로 설명드리겠습니다. (1.0 클래식은 그 버전을 0.97로 변경하여 설명하겠습니다.)

Q. 태터툴즈 0.9x과 동일한 방법은 무엇인가?
A. 단일사용자 모드입니다.

Q. 단일사용자와 다중사용자는 블로그 URL이 어떻게 달라지는가?
A. 셋업시에 선택 가능한 모드가 표시되며, 이를 선택하면 하단에 블로그 URL의 예가 표시됩니다.(제발, 표시되는 화면에 글 좀 자세히 봐 주세요. 나름대로 머리와 애 써서 만들었습니다. T.T )
단일사용자 모드에서는 0.9x와 동일하게 태터툴즈 설치시에 사용된 URL(이하, 설치URL)과 동일합니다. 다중사용자 모드에서는 설치URL에서 여러 블로그를 구분해야 하기 때문에 셋업시나 초대시에 블로그 식별자를 받아 이것으로 구분합니다. 이 블로그 식별자가 붙는 형태는, 도메인 식별일 경우에 설치URL의 도메인 앞단에 하위 도메인으로, 패스 식별일 경우에 설치URL의 하위 패스로 붙습니다. 예를 들어 http://papacha.net/tt에 태터툴즈를 설치했다고 할 때, 단일사용자 모드의 블로그 주소는 http://papacha.net/tt 입니다. 도메인 식별 다중사용자 모드에서 블로그 식별자는 jahng으로 했을 경우 http://jahng.papacha.net/tt 이고, blah라는 블로그 식별자를 사용하는 친구를 추가(초대)했을 경우 http://blah.papacha.net/tt 가 됩니다. 패스 식별 다중사용자 모드에서 위의 경우는 각각 http://papacha.net/tt/jahng, http://papacha.net/tt/blah 가 됩니다.

Q. 다중사용자 모드일 때 설치URL은 무용지물인가요?
A.도메인 식별의 다중사용자 모드일 때는 설치URL은 관리자(셋업시 설정된 첫번째 사용자)에게 할당됩니다. 윗 항목의 예에서 jahng 블로그는 http://jahng.papacha.net/tt 입니다만, 관리자이기 때문에 http://papacha.net/tt도 이 사용자 블로그로 할당되어 제공됩니다. (http://papacha.nethttp://www.papacha.net, http://chester.papacha.net을 비교해 보십시오.)
그러나 패스 식별일 경우는 디렉토리와의 충돌로 인하여 설치URL을 사용을 지원하지 않고 있습니다. 지원할 수 있습니다만, 지원해서 사용자가 다른 프로그램을 하위 디렉토리에 설치했는데 동작을 잘 안한다는 문제를 야기시키지 않기 위해서 입니다. 원하시는 분은 직접 .htaccess를 수정하여 지원하실 수 있을 것입니다.

Q. 사용하다가 사용자 모드를 변경할 수 있나요?
A. 네, 가능합니다. config.php에서 $service['type']의 값을 'single', 'domain', 'path' 중의 하나를 선택하면 동작합니다. 'single'은 단일사용자 모드, 'domain'은 도메인식별 다중사용자 모드, 'path'는 패스식별 다중사용자 모드입니다. 다중사용자 모드에서 단일사용자 모드로 전환하면, 당연히 관리자 블로그를 제외한 블로그는 모두 서비스 제공이 정지됩니다 (그러나 데이터의 손실은 없으며 다시 복귀할 수 있습니다). 단일사용자 모드에서 다중사용자 모드로의 전환은 패스식별은 항상 가능하나, 도메인 식별은 해당 도메인과 하위 도메인이 모두 같은 설치URL에 접근할 경우만 가능합니다.
여기에 single/domain과 path의 .htaccess가 다르다는 것에 주의하셔야 합니다. 다시 Setup을 실행시켜서(.htaccess와 config.php를 지우면 실행시킬 수 있습니다.) 동일한 데이터베이스 정보와 식별자를 사용하면 기존 DB를 그대로 사용하여 모드를 변경해 줍니다. 그렇지 않고 직접 수정하실려면 다음과 같이 모드에 맞게 .htaccess를 적용해야 합니다.
-----------[single 또는 domain의 .htaccess]---------
RewriteEngine On
RewriteBase $path/
RewriteCond %{ENV:REDIRECT_SURI} !^$
RewriteRule (.*) - [L]
RewriteRule ^$ blog/index.php [E=SURI:1,L]
RewriteRule ^[0-9]+$ blog/item.php [E=SURI:1,L]
RewriteRule ^favicon\.ico$ blog/favicon.ico.php [E=SURI:1,L]
RewriteRule ^index\.gif$ blog/index.gif.php [E=SURI:1,L]
RewriteCond %{QUERY_STRING} (^|&pl=([0-9]+)
RewriteRule ^index\.php$ %2 [NE,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule !^(blog|cache)/ - [L]
RewriteRule ^(entry|attachment|category|keylog|tag|search|plugin)/? blog/$1/index.php [E=SURI:1,L]
RewriteRule ^(.+)/[0-9]+$ blog/$1/item.php [E=SURI:1,L]
RewriteRule ^(.+)$ blog/$1/index.php [E=SURI:1,L]
-----------[path의 .htaccess]---------
RewriteEngine On
RewriteBase $path/
RewriteCond %{ENV:REDIRECT_SURI} !^$
RewriteRule (.*) - [L]
RewriteRule ^[[:alnum:]]+/*$ blog/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+[0-9]+$ blog/item.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+favicon\.ico$ blog/favicon.ico.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+index\.gif$ blog/index.gif.php [E=SURI:1,L]
RewriteCond %{QUERY_STRING} (^|&pl=([0-9]+)
RewriteRule ^[[:alnum:]]+/+index\.php$ %2 [NE,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule !^(blog|cache)/ - [L]
RewriteRule ^[[:alnum:]]+/+(entry|attachment|category|keylog|tag|search|plugin)/? blog/$1/index.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+(.+)/[0-9]+$ blog/$1/item.php [E=SURI:1,L]
RewriteRule ^[[:alnum:]]+/+(.+)$ blog/$1/index.php [E=SURI:1,L]
---------------------------------------------

위 .htaccess의 2번째 줄에 $path대신에 블로그 설치URL의 path를 적어주시면 됩니다. 이 $path는 모드에 상관없이 항상 동일합니다.

Q. 셋업시에 위의 3개 모드가 다 표시되지 않습니다.
A. 셋업이 사용 가능한 모드를 자체 테스트하여 사용 가능한 모드만을 표시합니다. 일반적으로 단일사용자 모드와 패스식별 다중사용자 모드는 항상 표시되며, 도메인 식별 다중사용자 모드는 도메인 설정과 웹서버 설정이 이를 가능하도록 되어 있어야 합니다. 예를 들어 papacha.net을 도메인 식별 다중사용자 모드로 사용하고 할 때, 도메인(DNS) 설정은 papacha.net과 papacha.net의 하위 도메인(abc.papacha.net, hello.papacha.net, www.papacha.net, ..., *.papacha.net)이 동일한 웹서버의 IP여야 하며, 웹서버 설정은 이들 papacha.net과 *.papacha.net이 모두 동일한 태터툴즈를 서비스해야 합니다.

더 궁금하신 점 있으면 댓글 주세요.
조만간 tattertools.com으로 옮기겠습니다.

Tag : ,

« PREV : 1 : 2 : 3 : 4 : ··· : 8 : NEXT »

티스토리 툴바