maczoo.com maczoo.com
매킨토시 사용자 커뮤니티
 
 FAQFAQ    검 색 검 색    회원목록회원목록   유저그룹유저그룹   회원가입회원가입 
 개인정보/환경설정개인정보/환경설정   쪽지 함 확인쪽지 함 확인    로그 인 로그 인  

Movable Type 설치하기

 
새 주제글을 작성합니다.   답변글을 작성합니다.    maczoo.com -> Tips & 사용기
이전 글 :: 다음 글  
글쓴이 메세지 내용
eastman
the Lord of maczoo
the Lord of maczoo


가입일: 2003년 04월 23일
토론: 1591
사는 곳: 서울 천호동

작성글Posted : 일 9 26, 2004 3:31 pm    제목: Movable Type 설치하기

한동안 태터툴즈를 잘 쓰고 있었는데
PHP를 5.0.1로 업데이트하고부터 문제가 생겨서 Movable Type로 바꾸었습니다.
설치 방법을 올려봅니다.

1. 무버블 타입의 다운로드 페이지에 가서 등록하고 라이브러리가 포함된 풀 버전을 다운로드 받는다. 현재 버전은 3.1.1.

http://www.movabletype.org/download.shtml

2. 받은 파일의 압축을 해제한다. Stuffit Expander가 있어야 한다.

3. 받은 파일을 모두 자신의 메인 하드 > Library > WebServer > CGI-Executables 속으로 복사한다. 다운받은 무버블 타입의 압축을 해제하면 MT-3.11-full-en_us라는 폴더가 생기는데 나는 이를 간략하게 mt라고 폴더명을 변경하여 앞에서 말한 폴더 속으로 복사했다.

4. 터미널(맥 사용자들이 아주 싫어하는 프로그램이지만 어쩔 수가 없다. 이걸 잠시 이용해야 한다. 이걸 이용하지 않고 그냥 info 창을 불러내서 퍼미션을 바꾸어도 될 것 같은데 그 부분을 아직 확실하게 공부를 하지 않아서 잘 모르겠다. 이 프로그램이 어디 있는지 모르시는 분은 Applications > Utilities > Terminal의 순서로 찾아가면 된다)을 띄운다. cd /Library/WebServer/CGI-Executables/mt라고 친다. 마지막의 mt는 내가 폴더명을 이렇게 변경했기 때문이며, 이는 각자가 정한 폴더 명칭에 따라 바뀌어야 한다. 이건 mt 폴더로 이동하는 명령이다.

5. 터미널에 또 다음과 같이 친다.
chmod 775 *.cgi
물론 엔터치는 것을 잊지 마시길.(이건 .cgi라는 확장자가 붙은 파일의 퍼미션을 변경하는 과정이다.)

6. mkdir ./db 라고 친다. (이건 db라는 이름의 폴더를 만드는 과정이다.)

7. chmod 777 ./db 라고 친다. (db 폴더의 퍼미션 변경 과정.)

8. 자신이 좋아하는 텍스트 편집기로 /Library/WebServer/CGI-Executables/mt/mt.cfg라는 파일을 연다. 나는 BBEdit를 사용했다.

9. CGIPath 라는 글자가 있는 줄을 찾아낸다. CGIPath 뒤에 이는 모든 글자를 지우고 http://localhost/cgi-bin/mt/로 대체한다. (거듭 지적하는데 이는 내가 cgi 폴더 속에 mt라는 폴더를 만들어 놓았기 때문에 이렇게 되는 것이다. 각자의 기호에 따라 이 부분은 변경해야 한다.)

10. StaticWebPath 라는 글자가 있는 줄을 찾아낸다. 앞에 있는 # 표시를 제거한다. StaticWebPath 뒤에 있는 글자를 모두 없애버리고 /mt-static/ 을 추가한다.

11. 파일을 저장하고 닫는다(좀 떨린다면 기도를 올리도록 한다).

12. 내가 만든 cgi 폴더 속의 mt 폴더 속에는 사실 cgi 파일만이 아니라 다른 파일들이 많이 들어가 있다. 따라서 이를 다른 곳으로 옮겨야 한다. 그것을 옮길 자리는 다름 아니라 /Library/WebServer/Documents/mt-static 이다. 물론 Documents 폴더로 가보면 그런 폴더가 있지도 않다. 그렇지만 그건 만들면 된다. mt-static이란 폴더를 각자 만들도록 하시길. 이 이름이 마음에 들지 않는 사람들은 물론 변경할 수 있지만 그러면 10번으로 돌아가서 그 이름에 걸맞게 변경 작업을 다시금 해야 한다. 어쨋거나 이렇게 만든 폴더 속으로 styless.css, docs, images 폴더 및 파일을 옮긴다.

13. 터미널에서 mkdir /Library/WebServer/Documents/archives 라고 친다.

14. sudo chmod -R 777 /Library/WebServer/Documents 라고 친다.

15. 자기가 좋아하는 웹 브라우저 띄워서 http://localhost/cgi-bin/mt/mt-load.cgi 라고 친다. 모든 것이 성공적으로 로드되었다는 문구가 나와야 한다. 물론 영어로 나오지만 successful만 알면 되니까 걱정할 필요가 없다. 나는 불행히도 여기서 문제가 생겼다. 원래 이 작업이 끝나면 mt-load.cgi가 삭제되어야 하는데 보안상의 문제로 삭제에 실패했다는 문구가 뜬 것이다. 그러거나 말거나. 그냥 mt 폴더로 들어가서 내가 직접 삭제해 버렸다.

16. 이제 거의 다 된 것 같다. 브라우저로 http://localhost/cgi-bin/mt/mt.cgi 로 접속한다. 짜잔! 로그인 화면이 나타난다. 자기 아이디 아무리 쳐봤자 소용이 없다. user name에는 Melody , password는 Nelson 이라고 친다(대문자는 대문자로). 나도 멜로디가 누군지는 모른다. 그러면 이제 무버블 타입의 메인 스크린이 나타난다.

17. 계속 멜로디로 활동할 수는 없는 노릇이고, 그것은 무버블 타입을 이용하는 모든 사람들이 알고 있을 것이므로 이를 진짜 나로 대체한 뒤 멜로디는 없애버려야 할 것이다. 오른쪽에 보면 Add/Edit Weblog Authors라는 것이 있는데 이를 누른다.

18. add/edit 페이지에서 자신의 아이디와 패스워드를 하나 만든다. First Weblog과 연결시킨다. SAVE 한다. 나는 여기서부터 문제가 생겼는데 어쨌거나 성공해서 잘 쓰고 있다. 그래서 여기서부터는 성공한 사람의 예로 설명을 하니 그렇게들 아시길. 원래 이렇게 SAVE를 하면 다시 로그인 화면이 나타난다. 다시 멜로디로 접속한다.

19. Add/Edit Authors 링크를 다시 클릭하고 Select an author to edit 메뉴로 가서 자신의 아이디를 선택하고 Edit를 누른 뒤 모든 항목을 체크하고 SAVE한다.

20. View complete list of authors 링크를 눌러서 멜로디 옆의 체크 박스를 체크한 뒤 DELETE 버튼을 눌러 삭제해 버린다. 나는 이 부분이 안되서 그냥 멜로디의 모든 권한을 정지시켜 버렸다. SAVE를 누른다. 원래 이렇게 하면 다시 로그인 화면으로 돌아간다.

21. 드디어 내 세상. 자신의 아이디와 패스워드로 접속한다..

22. First Weblog 링크를 클릭하면 각종 설정화면 왼쪽에 나타난다.

23. 여기서 Weblog Config 항목을 눌러서 두 가지 항목을 변경한다. 1. Local Site Path:/Library/WebServer/Documents 2. Local Archive Path: /Library/WebServer/Documents/archives

24. 저장한다.

25. Rebuild 버튼을 클릭한다.

이게 끝입니다. 나머지는 알아서들 하시길. 한글도 잘되는 것 같습니다. 태터가 곧 정상화되었으면 좋겠는데 아직까지는 계속 말썽이네요. 그리고 위에서 설명한 경우는 blog의 접속 화면을 웹 서버의 초기 페이지로 상정한 경우인데 만약 그 안에 폴더를 만들어 접속하도록 하려면 23번에 있는 Weblog Config의 내역은 물론이고 Site URL도 모두 바꾸어 주어야 합니다. 아무튼 태터와 달리 무버블은 PHP 5.0.1에서도 아무 문제가 없습니다.
맨 위로 가기
ㄴㅏㅂㅣ
master
master


가입일: 2003년 12월 31일
토론: 478
사는 곳: 서울

작성글Posted : 목 9 30, 2004 1:21 pm    제목:

15번에서 문제가 일어났습니다.

eastman님의 말씀대로 경로를 WebServer로 맞춰놓고 하니
인용글:
Not Found

The requested URL /cgi-bin/mt/mt-load.cgi was not found on this server.
Apache/2.0.48 (Unix) DAV/2 PHP/4.3.4 Server at localhost Port 80


라고 나옵니다.
혹시 몰라서 아파치2의 htdocs폴더에 넣고 실행하니 아래와같이 나오는군요.
뭐가 잘못된거죠?

인용글:
#!/usr/bin/perl -w # Copyright 2001-2004 Six Apart. This code cannot be redistributed without # permission from www.movabletype.org. # # $Id: mt-load.cgi,v 1.54 2004/08/26 20:54:14 ezra Exp $ use strict; my($MT_DIR); BEGIN { if ($0 =~ m!(.*[/\\])!) { $MT_DIR = $1; } else { $MT_DIR = './'; } unshift @INC, $MT_DIR . 'lib'; unshift @INC, $MT_DIR . 'extlib'; } local $| = 1; print "Content-Type: text/html\n\n"; print <
Movable Type System Loader [mt-load.cgi]

This page configures Movable Type to run on your system. If all of the tasks needed to set up Movable Type complete succesfully on your server, you will see a notice to that effect at the bottom of this page. If there are any problems during setup, you will see them display on this page so that you can make the appropriate corrections.
Movable Type System Setup
HTML use File::Spec; eval { my $tmpl_list; eval { $tmpl_list = require 'MT/default-templates.pl' }; die "Can't find default template list; where is 'default-templates.pl'?\n" . "Error: $@\n" if $@ || !$tmpl_list || ref($tmpl_list) ne 'ARRAY' || !@$tmpl_list; print "
Loading initial data into system...
\n"; require MT; my $mt = MT->new( Config => $MT_DIR . 'mt.cfg', Directory => $MT_DIR ) or die MT->errstr; if ($mt->{cfg}->ObjectDriver =~ /^DBI:Sad.*)$/) { my $type = $1; my $dbh = MT::Object->driver->{dbh}; my $schema = File::Spec->catfile($MT_DIR, 'schemas', $type . '.dump'); open FH, $schema or die "

Can't open schema file '$schema': $!
"; my $ddl; { local $/; $ddl = } close FH; my @stmts = split /;/, $ddl; print "
Loading database schema...
\n\n"; for my $stmt (@stmts) { $stmt =~ s!^\s*!!; $stmt =~ s!\s*$!!; next unless $stmt =~ /\S/; $dbh->do($stmt) or die $dbh->errstr; } } use MT::Author qw(AUTHOR COMMENTER); require MT::Blog; ## First check if there are any authors or blogs currently--if there ## are, don't run the rest of the script, because we don't want to add ## the default author back in (hack). if (MT::Author->count || MT::Blog->count) { print <
System Already Initialized

It looks like your database has already been initialized by mt-load.cgi. Re-running this script will create a security hole, so this script has been prevented from running.
MSG exit; } print "
Loading weblog...
\n"; my $blog = MT::Blog->new; $blog->name('First Weblog'); $blog->archive_type('Individual,Monthly,Category'); $blog->archive_type_preferred('Individual'); $blog->days_on_index(7); $blog->words_in_excerpt(40); $blog->file_extension('html'); $blog->convert_paras(1); $blog->convert_paras_comments(1); $blog->sanitize_spec(0); $blog->ping_weblogs(0); $blog->ping_blogs(0); $blog->server_offset(0); $blog->allow_reg_comments(1); $blog->allow_comments_default(1); $blog->language('en'); $blog->sort_order_posts('descend'); $blog->sort_order_comments('ascend'); $blog->status_default(1); $blog->custom_dynamic_templates('none'); $blog->children_modified_on('20040101000000'); $blog->save or die $blog->errstr; print "
Loading author...\
"; my $author = MT::Author->new; $author->name('Melody'); $author->type(AUTHOR); $author->set_password('Nelson'); $author->email(''); $author->can_create_blog(1); $author->can_view_log(1); $author->preferred_language('en-us'); $author->save or die $author->errstr; print "
Loading permissions...
\n"; require MT::Permission; my $perms = MT::Permission->new; $perms->author_id($author->id); $perms->blog_id($blog->id); $perms->set_full_permissions; $perms->save or die $perms->errstr; print "
Loading templates...
\n"; require MT::Template; my @arch_tmpl; for my $val (@$tmpl_list) { $val->{text} = $mt->translate_templatized($val->{text}); my $obj = MT::Template->new; $obj->build_dynamic(0); $obj->set_values($val); $obj->blog_id($blog->id); $obj->save or die $obj->errstr; if ($val->{type} eq 'archive' || $val->{type} eq 'individual' || $val->{type} eq 'category') { push @arch_tmpl, $obj; } } print "
Mapping templates to blog archive types...
\n"; require MT::TemplateMap; for my $tmpl (@arch_tmpl) { my(@at); if ($tmpl->type eq 'archive') { @at = qw( Daily Weekly Monthly ); } elsif ($tmpl->type eq 'category') { @at = qw( Category ); } elsif ($tmpl->type eq 'individual') { @at = qw( Individual ); } for my $at (@at) { print "

Mapping template ID '", $tmpl->id, "' to '$at'
\n"; my $map = MT::TemplateMap->new; $map->archive_type($at); $map->is_preferred(1); $map->template_id($tmpl->id); $map->blog_id($tmpl->blog_id); $map->save or die "Save failed: ", $map->errstr; } } }; if ($@) { print <

An error occurred while loading data:

$@
HTML } else { print <
System Initialization Complete

Done loading initial data! All went well. You can now continue with setup of the Movable Type system as described in the installation instructions.
HTML } sub security_notice { return <
Very Important:

Now that you have run mt-load.cgi, you will never need to run it again. You should now delete mt-load.cgi from your webserver.

Failure to delete mt-load.cgi introduces a MAJOR SECURITY RISK.
. TEXT } print "\n\n\n";

_________________
진실은 언제나 내 코끝에 있다.
파병반대!!
맨 위로 가기
eastman
the Lord of maczoo
the Lord of maczoo


가입일: 2003년 04월 23일
토론: 1591
사는 곳: 서울 천호동

작성글Posted : 목 9 30, 2004 7:36 pm    제목: 일단 cgi-bin 경로를 확인해 보시길

일단 cgi-bin 경로에서 cgi 스크립트가 실행되는지 확인해 보시기 바랍니다.
아시겠지만 아파치 웹서버의 문서가 저장되는 루트 폴더는 Documents이지만 이곳은 아무리 뒤져 보아도 cgi-bin이란 폴더(디렉토리)가 없습니다. 그런데도 우리는 마치 그곳에 cgi-bin 이란 폴더가 있는 것인양 실행을 시키고 있습니다. 따라서 cgi-bin이라고 치고 CGI-Executables 폴더 속에 들어있는 cgi 스크립트를 실행시키려면 바로 이 실제 디렉토리로 연계되는 가상 디렉토리가 설정되어 있어야 합니다. 제가 cgi-bin이란 주소를 치고 cgi를 실행시키는 것은 바로 이렇게 가상 디렉토리가 설정되어 있기 때문입니다. 이런 가상 디렉토리가 설정되어 있는지 알아보려면 웹브라우저의 창에

http://localhost/cgi-bin/test-cgi

라고 쳐서 테스트 cgi를 실행시켜 보면 알 수 있습니다. 보통 이 테스트 cgi가 기본으로 들어있습니다. 하지만 그래도 테스트 cgi가 들어있는지 확인해 보시기 바랍니다.
만약 안된다면 cgi-bin이란 가상 디렉토리가 설정되어 있지 않은 것입니다.
그런 경우엔 아파치의 환경설정 파일을 열어서 cgi-bin이란 가상 디렉토리를 설정하고 이의 실제 디렉토리가 CGI-Executables이 되게끔 설정을 해야 합니다.
그냥 문서 디렉토리에서 cgi를 실행시킬 수도 있지만 이것 또한 아파치에서 설정을 해야 하며 이 방법은 보안상 문제가 있다고 하여 별로 권하지 않고 있습니다.

cgi-bin의 가상 디렉토리 부분은 httpd.conf (아파치 설정 파일)에서 다음과 같이 되어 있습니다.

ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"

#
# "/Library/WebServer/CGI-Executables" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/Library/WebServer/CGI-Executables">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

물론 실제 cgi 실행 디렉토리가 어디냐에 따라 /Library/WebServer/CGI-Executables 부분이 달라질 것입니다.

저의 경우에는 이런 가상 디렉토리를 여러개 만들어서 사용하고 있습니다.

위험성은 있지만 아무데서나 cgi 스크립트를 실행시키려면 마찬가지로 httpd.conf 파일에서 설정을 변경해야 합니다. 그 부분은

# AddHandler cgi-script .cgi

입니다.
물론 앞의 # 을 제거하고 저장하면 그때부터 어디에서나 .cgi라는 확장자가 붙은 스크립트를 실행시킬 수 있습니다. 하지만 이건 경우에 따라 보안상 매우 위험할 수 있으므로 권하고 싶지 않습니다. 저도 별로 아는 것이 없기 때문에 이 정도밖에 설명을 드릴 수가 없군요. 참고로 저는 잘 설치해서 돌리고 있으며, 저의 아파치는 2.0이 아니라 그냥 맥에 기본으로 깔려있는 것을 그대로 쓰고 있습니다.
무버블 타입도 아파치에서 돌리는 것이기 때문에 아파치에 대한 기본 지식이 있어야 합니다. 그 부분을 먼저 공부해 보시기 바랍니다. 재미도 있습니다.
맨 위로 가기
이전 게시물보기:   
이전 글 :: 다음 글  
새 주제글을 작성합니다.   답변글을 작성합니다.    maczoo.com -> Tips & 사용기 모든 시간은 GMT + 9시로 출력됩니다.
페이지 : 1/1

 
이동:  
당신은 이 포럼에서 새글을 게시할 수 없습니다
당신은 이 포럼에서 답글을 게시할 수 없습니다
당신은 이 포럼에서 본인의 게시물을 수정할 수 없습니다
당신은 이 포럼에서 본인의 게시물을 삭제할 수 없습니다
당신은 이 포럼에서 투표를할 수 없습니다


Powered by phpBB 2.0.6 © 2001-2003 phpBB Group