1

주제: 다중사용자 설치 방법 제시 및 2차 도메인 설정오류

내용이 조금 깁니다.
텍스트큐브 개발진에서 꼭 봐주시기 바라고
해결책도 알려주시기 바랍니다.

내용의 골자는
도메인네임으로 블로그를 식별해주는 다중사용자 모드 설치가
setup.php 와 lib/auth.php 의 수정으로 가능합니다.
단, 2차 도메인 주소의 사용과 관련해서
textcube1.6.2 에서의 오류 부분에 대한 답을 구합니다.

===================================================
설치버전 : textcube 1.5.3.1

설치매뉴얼을 보면,

- 호스팅의 계정에 따라 DNS와 path를 동시에 지원하는 경우와 path만 지원하는 경우가 있습니다.
- 도메인네임(DNS)로 블로그 식별
- 하위 경로(PATH)로 블로그 식별

처럼
- 도메인네임(DNS)로 블로그 식별  이라는 메뉴도 뜬다고 되어 있습니다.

호스팅에 네임서버를 설정하면서
*.aaa.com 처럼 다이내믹이 작동되도록 했고
여기저기서 찾아본 자료에 맞도록 설정을 했지만
죽었다 깨나도... "도메인네임(DNS)로 블로그 식별" 이라는 메뉴가 뜨지 않습니다.

어찌어찌해서
setup.php 파일을 수정해서 설치 시도.
setup.php 파일의 778행 밑에             $rewrite = 2; 를 삽입하고 설치를 합니다.

[원본 내용]
       
@chmod($filename, 0666);
       
        if (testMyself(substr(getFingerPrint(), 0, 6) . substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.')), $path . '/testrewrite?test=now', $_SERVER['SERVER_PORT']))
            $rewrite = 3;
        else if (testMyself(substr(getFingerPrint(), 0, 6) . '.' . $_SERVER['HTTP_HOST'], $path . '/testrewrite?test=now', $_SERVER['SERVER_PORT']))
            $rewrite = 2;
        else if (testMyself($_SERVER['HTTP_HOST'], $path . '/testrewrite?test=now', $_SERVER['SERVER_PORT']))
            $rewrite = 1;
        else {
            $rewrite = 0;
            @unlink($filename);
            checkStep(33, false);
            return false;
        }
        @unlink($filename);
        $domain = $rewrite == 3 ? substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.') + 1) : $_SERVER['HTTP_HOST'];


[수정 내용]

@chmod($filename, 0666);
       
        if (testMyself(substr(getFingerPrint(), 0, 6) . substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.')), $path . '/testrewrite?test=now', $_SERVER['SERVER_PORT']))
            $rewrite = 3;
        else if (testMyself(substr(getFingerPrint(), 0, 6) . '.' . $_SERVER['HTTP_HOST'], $path . '/testrewrite?test=now', $_SERVER['SERVER_PORT']))
            $rewrite = 2;
        else if (testMyself($_SERVER['HTTP_HOST'], $path . '/testrewrite?test=now', $_SERVER['SERVER_PORT']))
            $rewrite = 1;
        else {
            $rewrite = 0;
       @unlink($filename);
            checkStep(33, false);
            return false;
        }

               $rewrite = 2;   

       @unlink($filename);
        $domain = $rewrite == 3 ? substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.') + 1) : $_SERVER['HTTP_HOST'];


위와 같이             $rewrite = 2; 를 삽입하고 수정한 setup.php 로 설치를 하면

- 도메인네임(DNS)로 블로그 식별
- 하위 경로(PATH)로 블로그 식별

처럼 "도메인네임으로 블로그 식별" 메뉴가 뜨고
설치를 완료합니다.

==================================================

위와 같이 setup.php 파일을 수정만 해주어도
제가 이용하는 서버 환경에서는 도메인네임으로 블로그를 식별해주는 다중사용자 모드가
정상적으로 설치되고
여러개의 하위 블로그를 생성해주더라도
아무 문제없이 돌아갑니다.

textcube 1.5.3.1,  textcube 1.5.4 모두 설치가 가능합니다.
심지어 최근 발표된 textcube 1.6.2 버전에서도
도메인네임으로 블로그를 식별해주는 다중사용자 모드 설치가 가능합니다.

==================================================

여기까지는
어찌어찌해서 맞는 방법인 지는 몰라도
강제(?)로 도메인네임으로 블로그를 식별해주는 다중사용자 모드를 설치했습니다.

textcube 에서는 티스토리 처럼 "2차 블로그 주소"를 사용할 수 있는 옵션이 새로 생겼습니다.

1차 블로그 주소  http://selva.pcc4u.net 였던 것을
2차 블로그 주소  http://clubcapetown.net 처럼 설정을 해주면

selva.pcc4u.net 으로도 로그인이 가능하고
clubcapetown.net 으로도 로그인이 가능하므로

블로거가 소유한 독립적인 URL로 블로그를 이용할 수 있게 됩니다.

자.. 그럼 잘 되나 확인해봅니다.

1차 블로그 주소  http://selva.pcc4u.net
2차 블로그 주소  http://clubcapetown.net

처럼
2차 블로그 주소에 clubcapetown.net 을 입력하고 저장을 하면
저장이 되고, 설정된 2차 블로그 주소로 이동하면서
다시 로그인을 하라고 합니다.

이동된 로그인 URL의 주소가
http://selva.pcc4u.net/login?requestURI … Fdashboard
처럼 표시가 됩니다.

여기서 이메일과 비밀번호를 입력하면, dashboard 창으로 이동하지 못합니다.
실제로는 로그인이 되었지만, dashboard 창으로 이동하지 못하고 있습니다.
(이동하지 못하고 있는 익스플로러에서 원래의 selva.pcc4u.net 으로 들어가, control panal을 누르면
곧바로 dsahboard 창으로 들어가는 것을 보면, 로그인이 되었지만, 그 창으로 들어가지 못하는 것 같습니다.)

혹시
http://selva.pcc4u.net/login?requestURI … Fdashboard
에서
앞부분의 selva.pcc4u.net 과 뒷부분의 clubcapetown.net가 일치되지 않아서 생기는 문제 같습니다.

이 문제는 lib/auth.php 를 수정해서 해결됩니다.

auth.php 의 35행 아래를 보면 아래의 내용입니다.

function requireLogin() {
    global $service, $hostURL, $blogURL;
    if (!empty($service['loginURL'])) {
        header("Location: {$service['loginURL']}?requestURI=" . rawurlencode("$hostURL{$_SERVER['REQUEST_URI']}"));
    } else {
        if (String::endsWith($_SERVER['HTTP_HOST'], '.' . $service['domain']))
            header("Location: $blogURL/login?requestURI=" . rawurlencode("$hostURL{$_SERVER['REQUEST_URI']}"));
        else
            header('Location: ' . getBlogURL() . '/login?requestURI=' . rawurlencode("$hostURL{$_SERVER['REQUEST_URI']}"));
    }
    exit;
}

윗 부분을 아래와 같이 수정합니다.

function requireLogin() {
    global $service, $hostURL, $blogURL;
    if (!empty($service['loginURL'])) {
        header("Location: {$service['loginURL']}?requestURI=" . rawurlencode("$hostURL{$_SERVER['REQUEST_URI']}"));
    } else {
//        if (String::endsWith($_SERVER['HTTP_HOST'], '.' . $service['domain']))
            header("Location: $blogURL/login?requestURI=" . rawurlencode("$hostURL{$_SERVER['REQUEST_URI']}"));
//        else
//            header('Location: ' . getBlogURL() . '/login?requestURI=' . rawurlencode("$hostURL{$_SERVER['REQUEST_URI']}"));
    }
    exit;
}

40, 42, 43 행을 동작하지 않도록 죽입니다.

위와 같이 lib/auth.php 를 수정하면
clubcapetown.net 의 로그인 URL이

http://clbcapetown.net/login?requestURI … Fdashboard

처럼 앞부분의 도메인 주소와 뒷부분의 도메인 주소가 일치해서 뜨고
로그인도 정상적으로 되고

아무 이상없이
도메인네임으로 블로그를 식별해주는 다중사용자 설정으로 이용할 수 있습니다.

위의 내용처럼
setup.php 와 lib/auth.php 의 부분적인 수정을 통해서
도메인네임으로 블로그를 식별해주는 다중사용자 설정을 해서 이용하는 것이
다른 파일들의 동작에 어떤 영향을 주는 지는 자세하게 모르겠지만
별 이상없이 이용할 수 있을 것이라 생각합니다.

문제는, 위의 방법은 textcube 1.5.3.1 과 textcube 1.5.4 에서 적용한 방법입니다.

===================================================

하지만
새로 나온 textcube 1.6.2 에서는 위의 내용처럼
"2차 도메인"으로의 연결이 되지 않습니다.

우선 setup.php와 auth.php를 같은 방법으로 수정을 하고, 설치를 합니다.

도메인네임으로 블로그를 식별해주는 다중사용자 설치가 잘 됩니다.
2차 도메인을 clubcapetown.net 을 바꾸어주고
clubcapetown.net 으로 로그인을 하면

http://clbcapetown.net/login?requestURI … Fdashboard

처럼 잘 뜹니다.

문제는 여기서 이메일과 비밀번호를 입력하고 로그인을 하면
dashboard 창으로 들어가지 못하고

로그인 창(http://clbcapetown.net/login?requestURI=http%3A%2F%2Fclubcapetown.net%2Fowner%2Fcenter%2Fdashboard)이 계속 뜹니다.

원래 주소인 selva.pcc4u.net 으로 접속하고 로그인을 하더라도, 전혀 로그인이 되어 있지 않습니다.

1.5.3 버전과 1.6.2 버전의 어떤 차이 때문인 지를 모르겠습니다.

setup.php 파일이나, auth.php 파일을 수정하지 않고
도메인네임으로 블로그 식별하는 다중사용자로 설치하면
"2차 도메인 연결" 부분이 아무 이상없나요?

textcube 1.5.3.1 에서
"2차 도메인 연결"을 하기 위해서 auth.php 파일을 수정해야만 했습니다.
혹시 setup.php 를 강제적으로 수정하지 않고
도메인네임으로 블로그 식별하는 다중사용자 설치가 가능하면
auth.php 를 수정하지 않더라도, "2차 도메인 연결"이 잘 되는 것인가요?

만약
"2차 도메인 연결"과 관련해서, auth.php 파일이 잘못되어져 있었다면
저처럼 수정해서 사용해도, 블로그의 전체 시스템에 영향이 없는 것인가요?

영향이 없는 것이라면
textcube 1.6.2 에서도 1.5.3.1 에서 처럼 auth.php를 수정해서 아무 이상없어야 하는데
로그인이 되지 않는 상황은
또 어떤 파일을 수정해야 하는 것인가요?

setup.php 만 눌러도

- 도메인네임(DNS)로 블로그 식별
- 하위 경로(PATH)로 블로그 식별

이런 옵션이 모두 뜨는 서버 환경이 아니라서
제가 직접 테스트해볼 기회가 없습니다.

이 글을 보시는 분께서
문제에 대한 해결 방법을 알려주시기를 고대합니다.

setup.php, auth.php 를 수정하는 것이 올바른 방법인 지도 궁금합니다.

U클래스.

2

답글: 다중사용자 설치 방법 제시 및 2차 도메인 설정오류

윗글과 관련해
lib/config.sys 에서

$service['type'] = 'single'; 을

$service['type'] = 'domain'; 로 수정해도

수정한 것이나, 수정하지 않은 것이나
영향은 없습니다.

어떤 차이가 있는 것인가요?

3

답글: 다중사용자 설치 방법 제시 및 2차 도메인 설정오류

싱글의 경우는 다중 사용자를 지원하지 않습니다. 그 밖에는 동일합니다^^

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

4

답글: 다중사용자 설치 방법 제시 및 2차 도메인 설정오류

로그인을 시도할 때, 2차 도메인으로 변경 직후만 그런 것인가요, 아니면 이후에도 계속 동작하지 않는 건가요?

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

5

답글: 다중사용자 설치 방법 제시 및 2차 도메인 설정오류

2차도메인으로 변경 직후뿐 아니라, 이후에도 로그인이 되지 않습니다.