다음 이전 차례

3. ZOPE 설치하기

3.1 linux/unix 에서의 install

소스 배포본을 이용한 설치

가장 유연한 설치방식 입니다만, 그만큼 번잡할 수도 있습니다. 간단히 시험해볼 솔라리스 사용자나 인텔계열용 리눅스 사용자 분들은 바이너리 배포본을 사용하시는 것이 훨씬 편리합니다.

Zope 를 설치하기 전 python 1.5.2가 설치되어 있어야 합니다. 요즘의 배포본은 대부분 python 1.5.2를 기본으로 갖고 있습니다. 프롬프트에서 python이라고 치면 나오는 첫줄에 나오는 판 번호를 보면 쉽게 확인할 수 있습니다. 없는 분은 각 배포본 사이트나 www.python.org 국내 미러 사이트에서 구하시기 바랍니다.

zope 소스 배포본은 http://www.zope.org/Products/Zope/2.1.5/Zope-2.1.5-src.tgz에서 내려받을 수 있습니다(2000년 3월 현재 최신판).

아파치와 연동하지 않을 경우(zserver 사용).

설치 사례

                        01: cd /usr/local
                        02: su
                        03: tar xvzf Zope-2.0.1-src.tgz 
                        04: mv Zope-2.0.1-src Zope
                        05: chown -R nobody.nobody Zope
                        06: cd Zope
                        07: su nobody
                        08: python -O wo_pcgi.py
                        09: python zpasswd.pyo -p new_passwd access
                        10: exit
                        11: python z2.pyo
                        12: exit
                        

위와 같이 설치하면 같이 zope에 딸려오는 zserver를 통해서 서비스가 이루어집니다. 이때 아무런 설정 작업을 하지 않으면 http 포트는 8080, ftp 포트는 8021, telnet 포트는 8099입니다(telnet 포트는 작동 중인 zope의 내부 상태를 검사할 때 사용합니다).

해설

  1. 01: /usr/local 말고 어느 디렉토리에 설치에도 무방 합니다.
  2. 02, 05, 07, 10, 12: root로서 설치할 때의 경우입니다. zope는 원칙적으로 설치 유저의 권한을 갖고 작동합니다.] 외부에서 접근가능한 zope가 루트 권한을 갖고 있으면 곤란하니까 05와 07에서 zope가 nobody로 작동하도록 바꿔주는 것입니다. 일반 사용자로서 설치할 때는 02, 07, 10, 12가 필요없고, 때에 따라 05에서
                            chown -R username.usergroup Zope
                            
    
    라고 해버리면 됩니다.
  3. 08, 09, 11: -O 옵션을 주면 파이썬 인터프리터는 파이썬 파일(*.py 파일)을 '최적화 컴파일'합니다. 이때 컴파일된 파일의 확장자가 .pyo입니다. 이렇게 하면 일반 컴파일된 파일(*.pyc)보다 수행 속도가 약간 증가합니다만, traceback정보(에러 보고 정보)가 거의 보고 되지 않습니다. 그러므로 zope를 처음 사용하시는 분들이나 개발 플랫폼에서는 -O 옵션을 사용하지 않기 바랍니다. 사용하지 않기를 권합니다. 귀찮을 때는 *.pyc나 *.pyo 대신 그냥 *.py 확장자를 사용하면 파이썬 인터프리터가 알아서 최신 버전을 찾아 사용합니다.
  4. 09: zope를 설치한 디렉토리에 생성되는 access파일에는 superuser의 정보가 담겨 있습니다. 이 superuser 정보 만큼은 브라우저로 관리할 수 없고 프롬프트 상에서 작업을 해야 합니다. zpasswd.py 파일은 access 화일에 superuser의 패스워드를 암호화해서 저장합니다. 다른 사람이 superuser의 패스워드를 보지 못하도록 할 때 편리합니다. 상관없을 때는 access화일에 걍
                            myZopeSuperuserId:myPasswd:mydomain
                            
    
    라고 한 줄만 달랑 써주면 됩니다. 중간에 공백이 없어야 하고 각 필드는 콜론(:)으로 구별됩니다. 마지막 mydomain은 선택사항으로 써주면 해당 도메인/호스트에서만 superuser로 접근이 가능하게 됩니다. 아, myZopeSuperuserId와 myPasswd는 영문으로 하기 바랍니다. 잘 알려 진대로 브라우저에 따라 한글을 취급하는 방식이 제멋대로이기 때문입니다.
  5. 11: zope를 띄웁니다. z2는 zope 2를 뜻합니다. 설치를 마치고 브라우저로 http://yourhost:8080/를 보면 초기 화면이 뜹니다. 관리(manage) 인터페이스로 가는 Id와 패스워드는 당연히 access파일의 myZopeSuperuserId와 myPasswd입니다. 즐기시기 바랍니다.

아파치와 연동할 경우(pcgi사용)

설치사례

zope 설치

                        01: cd /usr/local
                        02: su
                        03: tar xvzf Zope-2.0.1-src.tgz 
                        04: mv Zope-2.0.1-src Zope
                        05: chown -R nobody.nobody Zope
                        06: cd Zope
                        07: su nobody
                        08: python -O w_pcgi.py
                        09: python zpasswd.pyo -p new_passwd access
                        10: exit
                        11: cp Zope.cgi /home/httpd/cgi-bin/
                        12: python z2.pyo -p /home/httpd/cgi-bin/Zope.cgi
                        13: exit
                        

아파치 설정(httpd.conf) 편집

                        14: RewriteEngine on
                        15: RewriteCond %{HTTP:Authorization}  ^(.*)
                        16: RewriteRule ^/zope(.*) /home/httpd/cgi-bin/Zope.cgi/$1 [e=HTTP_CGI_AUTHORIZATION:%1,t=application/x-httpd-cgi,l]
                        

위와 같이 하면 pcgi 프로토콜을 이용하여 전체 아파치 사이트 중 /zope/ 이하의 URL이 zope에 의해 서비스됩니다.

해설

  1. 02, 05, 07, 10, 13: 아파치(또는 다른 웹서버)와 연동하려면 원칙적으로 root로서 설치해야 합니다.
  2. 08, 11: 08번 줄에 의해 zope 설치 디렉토리에 Zope.cgi 파일이 생성됩니다. 이 파일을 cgi가 실행될 수 있는 디렉토리에 복사하거나 링크해야 합니다.

    Zope.cgi는 pcgi 파일로서 보통 cgi 프로그램과 마찬가지로 불릴 때마다 새롭게 실행됩니다. 일단 실행된 Zope.cgi는 백그라운드에서 zope가 돌아가고 있는지 검사하고 없으면 zope를 실행시킵니다. 돌아가고 있으면 zope에게서 필요한 데이터를 물어다가 아파치에게 돌려주고 죽습니다. 당연히 pcgi를 사용하면 보통 cgi와 마찬가지로 서버에 부담을 줍니다. 다만 zope 자체는 백그라운드에서 별도로 돌아가므로 다행히 그 부담이 zope가 하는 일에 비해서는 작습니다. pcgi는 zope 외에 다른 프로그램에서도 활용할 수 있습니다.

    pcgi를 직접 이용하는 방법 외에 mod_pcgi, mod_proxy, mod_FastCGI 등을 이용하여 아파치와 zope를 통합할 수 있습니다. zope-install-directory/doc/WEBSERVER.txt 등을 참고하십시오.

  3. 12: 12번 줄을 생략할 수도 있습니다. 그러면 zope는 아파치가 처음으로 Zope.cgi 파일을 불러낼 때 실행됩니다. 이때 약간의 시간지연이 있습니다. 12번 줄을 넣으면 zope는 멀티쓰레드 모드로 작동하고, 대체적으로 응답속도가 빨라집니다. (물론 시스템 리소스에 비해 쓰래드 수가 많으면 도로아미타불입니다 : ( )
  4. 14, 15, 16: 기존의 아파치 사이트는 그대로 두고 /zope/ 이하의 URL만 zope로 서비스하는 설정입니다. 아래의 RPM으로 설치하기 (w/ Apache)절에는 일부 URL만 아파치로 서비스하고 대부분을 zope로 설치하는 설정이 있습니다. 참고하시기 바랍니다.
  5. 16: 대개들 zope가 서비스하는 URL이 zope나 Zope로 시작하도록 설정합니다(^/zope(.*) 부분). 부디 좀 더 상상력을 발휘해서 진부하지 않은 URL을 사용합시다!

바이너리 배포본을 이용한 설치(인텔 계열 리눅스 사용자용)

설치하기 제일 간단한 경우입니다. 파이썬 1.5.2도 zope 설치 디렉토리의 서브 트리에 자동으로 설치되기 때문에 아무 생각할 필요가 없습니다. 솔라리스용 바이너리 배포본은 시험해보지 못했기 때문에 설명을 생략합니다만, 인텔 리눅스용 바이너리 배포본과 차이가 없다고 합니다. 일단 zope를 구경하시려는 분들은 이 방법을 권합니다.

인텔 리눅스용 바이너리 배포본은 http://www.zope.org/Products/Zope/2.1.5/Zope-2.1.5-linux2-x86.tgz 에서, 솔라리스용 바이너리 배포본은 http://www.zope.org/Products/Zope/2.1.5/Zope-2.1.5-solaris-2.6-sparc.tgz 에서 내려받을 수 있습니다.

아파치와 연동하지 않을 경우(zserver 사용).

설치사례

zope 설치

                        01: cd /home/myhomedir/anydir
                        02: tar xfz /path/to/downloaded/Zope-2.1.5-linux2-x86.tgz
                        03: cd Zope-2.1.5
                        04: ./install -u myid -g mygroup
                        05: chown -R myid.mygrop var
                        06: echo 'myZopeSuperuserId:myZopePasswd:myDomain' > access
                        07: ./start
                        

해설

  1. root로서 설치하지 않는 한, 이 경우에는 별로 주의할 것이 없습니다. 일부러 제일 게으른 설치의 예를 들었습니다.
  2. 01, 03: 이렇게 하면 /home/myhomedir/anydir/Zope-2.1.5가 zope설치 디렉토리가 됩니다.
  3. 04: zope가 myid.mygroup으로 작동되도록 install 스크립트에게 명령을 내립니다. 엔터키를 누르면 잠깐 지혼자 버벅거리는데 프롬프트가 나오면 핵심적인 설치과정은 끝난 것입니다.
  4. 05: 가끔 퍼미션 설정이 이상할 때가 있는데(필자 중 이관수는 리눅스 초보자 6년차입니다), 귀찮으니까 쳐다보지도 않고 zope가 쓰기 권한을 가지고 있어야 하는 var디렉토리 이하의 소유자를 몽창 바꿉니다.
  5. 06: 기본 access파일의 내용을 마음대로 바꿉니다. access파일에 대해서는 앞의 설명을 참고하십시오.
  6. 07: 자동 생성되는 start 스크립트를 실행시킵니다. start 스크립트를 사용하면 여러가지 방식으로 z2.py를 실행시킬 수 있습니다. 단, 기본 start 스크립트를 그대로 실행시키변 zope가 백그라운드에서 돌아가다가 실행자가 로그아웃 했을때 죽어버립니다. 로그아웃 이후에도 zope가 돌아가도록 하려면 start 스크립트를 편집기로 열어서 '-D' 옵션을 지워버리면 됩니다.
  7. 이제 브라우저로 http://myServerDomainOrIP:8080/을 열면 zope와 재미있게 놀 수 있습니다.

아파치와 연동할 경우(pcgi 사용).

설치사례

                        01: cd /anydir/but/not/accessible/by/apache
                        02: su
                        03: tar xfz /path/to/downloaded/Zope-2.1.5-linux2-x86.tgz
                        04: cd Zope-2.1.5
                        05: ./install 
                        06: chown -R nobody.nobody var
                        07: echo 'myZopeSuperuserId:myZopePasswd:myDomain' > access
                        08: cp Zope.cgi /home/httpd/cgi-bin/
                        09: chmod a+x /home/httpd/cgi-bin/Zope.cgi
                        10: 아파치 설정 편집
                        11: exit
                        

해설

  1. 02, 05, 10, 11: 아파치와 연동하려면 꼭 root로서 설치하여야 합니다. 결국은 아파치 설정을 편집해야 하므로 어차피 root로서 작업해야 하니까 별 불만은 없으리라고 봅니다.
  2. 01: 만일 이 경로가 아파치가 읽고 쓸 수 있는 것이라면 누군가가 zope파일들을 바꿀 수 있다는 말이겠죠? 노파심에서 다시 한번 강조합니다.
  3. 03, 04: 이렇게 하면 Zope-2.1.5가 zope 디렉토리가 됩니다. 경험상 디렉토리 이름에 판 번호를 남겨두는 것이 업그레이드 할 때 덜 헷깔려서 낫습니다(zope 관리자 화면에서 판번호를 확인할 수도 있지만 디렉토리 이름에 판번호가 있으면 더 편리합니다). 하지만 보기 싫으신 분들은 03과 04 사이에서 zope 디렉토리명을 바꾸어도 무방합니다.
  4. 05, 06: zope 디렉토리의 하위 디렉토리 중 var만 웹서버의 user.group인 nobody.nobody의 소유면 됩니다. 만일 05에서, 제시된 바와 달리,
                            ./install -u nobody -g nobody
                            
    
    라고 해도 무방하고, 그러면 06도 필요없어 보이기는 하지만 그리하면 var이외의 다른 파일들과 하위 디렉토리들도 world-read/writable해지니까 권하지 않습니다. 특별히 게으르시고 모험심이 있는 분이 실험해주시면 감사하겠습니다.
  5. 07: 패스워드를 암호화하고 싶으신 분은 RPM 설치를 참고하시기 바랍니다.
  6. 08, 09: 복사하고 복사된 Zope.cgi의 퍼미션을 확인해보면 좋습니다. 자동으로 설정되기는 하지만 그래도 한번 보는 것만 못합니다. cp대신 mv해버려도 되기는 하지만 나중을 생각하면 zope 디렉토리에 Zope.cgi 파일을 남겨두는 것도 좋습니다.

    pcgi파일(Zope.cgi)의 이름이 꼭 Zope.cgi일 필요는 없습니다. 만일 한 기계에서 여러 개의 zope를 아파치와 연동할 때는 각 zope별로 pcgi.파일의 이름을 달리 주면 됩니다.

  7. 10: 아파치 설정 편집은 zope를 어떻게 이용할 것인가에 따라 아주 다양합니다. 소스 설치와 RPM 설치의 아파치 설정 편집 예들도 꼭 살펴보기 바랍니다. 여기서는 한 서버에서 사용자 별로 zope를 돌려 줄 때의 예를 들겠습니다(리소스를 많이 잡아 먹기 때문에 권할 바는 아닙니다만, 그럴 수도 있다는 것을 보여주는 것 만으로도 예로서의 가치는 있다고 봅니다).

    사이트의 /users, /users/foo, /users/bar URL이 각기 zope에 의해 서비스 되는 아파치 설정(httpd.conf) 편집의 예

                            1: RewriteEngine on
                            2: RewriteCond %{HTTP:Authorization}  ^(.*)
                            3: RewriteRule ^/users/foo(.*) /home/httpd/users/cgi-bin/Zope1.cgi/$1 [e=HTTP_CGI_AUTHORIZATION:%1,t=application/x-httpd-cgi,l]
                            4: RewriteRule ^/users/bar(.*) /home/httpd/cgi-bin/bar.cgi/$1 [e=HTTP_CGI_AUTHORIZATION:%1,t=application/x-httpd-cgi,l]                                                
                            5: RewriteRule ^/users(.*) /home/httpd/cgi-bin/zope.cgi/$1 [e=HTTP_CGI_AUTHORIZATION:%1,t=application/x-httpd-cgi,l]
                            
    
    3, 4, 5 행을 주의해 보기 바랍니다. 4행의 경우처럼 /users/bar를 zope가 서비스 한다면 pcgi파일을 기본 cgi디렉토리에 bar.cgi로 두는 것이 보통이지만, 필요하다면 cgi가 되는 곳이면 아무 디렉토리에 마음에 드는 이름으로 pcgi파일을 두어도 무방합니다. 또한 3,4,5행의 순서에 주의하기 바랍니다. 3, 4행은 서로 바뀌어도 상관없지만, 5행은 3, 4행 다음에 와야 합니다. 이는 /users/foo, /users/bar이 /users의 하위 URL이기 때문입니다. 만일 5행이 3,4행보다 먼저 온다면 /users/bar는 bar.cgi가 아니라 zope.cgi가 부르는 zope가 언제나 서비스하게 됩니다. bar.cgi를 부를 방법이 없어지는 것이지요. mod_rewrite는 복잡하므로 관련 문헌을 꼭 참고하기 바랍니다.

  8. 11: 아파치 설정까지 끝났으면 빠져 나와서 브라우저로 http://localhost/users를 확인해보시기 바랍니다.

RPM 을 통한 설치. (Redhat 계열 )

Zope 를 설치하기 전 python 1.5.2가 설치되어 있어야 합니다.

                python
                
한 후 나오는 판번호를 확인하기 바랍니다. 없는 분은 각 배포본 사이트나 www.python.org 국내 미러 사이트에서 구하시기 바랍니다.

RPM 파일들은 몇 종류가 있습니다만, www.zope.org의 Download 페이지에 소게된 것은 Jeff Rush씨의 것 뿐입니다. 이것을 사용하는 것이 제일 무난할 것입니다. 다만 설치방법에 따라 RPM들을 골라 받아야 한다는 점에 주의하기 바랍니다. 여기 http://starship.python.net/crew/jrush/Zope/Zope214.html 에서 RPM 을 받습니다. 2000년 3월 19일 현재 최신 RPM판 버전은 2.1.4으로 소스배포본 및 바이너리배포본보다는 하나 늦습니만, 곧 업데이트되리라고 봅니다. 최신 배포본들에 zope 패키지되어 있다는 말을 듣기는 했습니다만 확인해보지는 못했습니다.

RPM 설치의 장점은 부팅시 자동으로 zope가 뜬다는 점입니다. 물론 init스크립트를 편집할 수 있는 분은 어떻게든 이리 되도록 하실 수 있으시겠습니다만, 편리한 것만은 사실입니다. 단점은 한 기계에 여러 zope를 돌리기에는 불편하다는 점입니다. 또 그저 시험해볼려는 분에게는 매번 zope가 원하지도 않는데 떠버리는 것은 불편할 것입니다. 처음 시험해보는 분들은 바이너리 배포본 설치를 권합니다.

아파치와 연동하지 않는 경우(zserver사용)

http://starship.python.net/crew/jrush/Zope/Zope214.html 에서 Zope-2.1.4-1.i386.rpm 와 Zope-zserver-2.1.4-1.i386.rpm 를 다운 받습니다.

                        rpm -ivh Zope-2.1.4-1.i386.rpm
                        rpm -ivh Zope-zserver-2.1.4-1.i386.rpm
                        
를 실행해서 설치합니다. 이 때 설치되는 디렉토리는 다음과 같습니다.
                        /usr/share/zope -> zope 홈디렉토리
                        /var/zope -> access 등의 정의 파일들
                        /usr/doc/Zope-* 과 /home/httpd/html/zope/ -> 문서파일들
                        /etc/rc.d/init.d/zope -> zserver 데몬의 start stop 스크립트
                        

설치가 끝났으면, /etc/rc.d/init.d/zope start 를 통해 zope를 실행시킵니다. 웹 브라우져로 http://localhost:8080에 접속하시면 zope의 첫 화면을 보실 수 있습니다. http://localhost:8080/manage 에 접속하시면, zope의 관리자 화면을 보실 수 있습니다. 기본 아이디와 암호는 /var/zope/access 에 superuser와 123으로 지정되어 있습니다.

아파치와 연동할 경우 (pcgi 사용)

Zope 를 설치하기 전 python과 apache가 설치되어 있어야 합니다.

http://starship.python.net/crew/jrush/Zope/Zope214.html 에서 RPM 을 받습니다. (2000 년 3월 현재 최신버젼)

Zope-2.1.4-1.i386.rpm 와 Zope-pcgi-2.1.4-1.i386.rpm 를 다운 받습니다.

                        rpm -ivh Zope-2.1.4-1.i386.rpm
                        rpm -ivh Zope-pcgi-2.1.4-1.i386.rpm 
                        
를 실행해서 설치한후 httpd.conf를 아래와 같이 설정합니다.
                        RewriteEngine on
                        RewriteRule ^/static/(.*)   /home/httpd/html/$1 [l]
                        RewriteRule ^/cgi-bin/(.*)  /home/httpd/cgi-bin/$1 [e=HTTP_CGI_AUTHORIZATION:%1,t=application/x-httpd-cgi,l]
                        RewriteCond %{HTTP:Authorization}  ^(.*)
                        RewriteRule ^/(.*) /home/httpd/cgi-bin/Zope/$1 [e=HTTP_CGI_AUTHORIZATION:%1,t=application/x-httpd-cgi,l]
                        
그리고 Zope.cgi를 아래와 같이 복사하거나 심볼릭 링크시켜주어야 합니다.
                        ln -s /var/zope/Zope.cgi /home/httpd/cgi-bin/Zope 또는 
                        cp /var/zope/Zope.cgi /home/httpd/cgi-bin/Zope
                        
심볼릭 링크를 사용하였다면, 아래와 같이 FollowSymLinks 옵션을 주어야 합니다.
                        <Directory /home/httpd/cgi-bin>
                        AllowOverride  None
                        Options        ExecCGI  FollowSymLinks
                        
                        
설정이 끝났다면, 아파치와 zope를 재시작 시켜주어야 합니다.
                        /etc/rc.d/init.d/httpd restart 
                        /etc/rc.d/init.d/zope start 
                        
모든 설정이 성공적으로 끝났다면, http://localhost에서 첫 화면 http://localhost/manage 에서 zope의 관리자 화면을 보실 수 있으실 겁니다. 이전에 홈페이지를 운영하고 있었다면, http://localhost/static 에서 이전의 홈페이지를 찾으실 수 있으실 겁니다.

3.2 windows 계열에서의 인스톨.

Windows 계열에서의 Zope 인스톨은 매우 간단합니다. Python 은 자동으로 설치되며, 단지. http://yyy.zope.org/Products/Zope/2.1.5/Zope-2.1.5-win32-x86.exe/view (2000 년 3월 현재 최신버젼) 에서 다운 받은 Zope 만 가지고 있으면 됩니다. Zope의 설치 순서입니다.

  1. 다운 받은 Zope 를 더블 클릭해서 installer 를 실행시킵니다.
  2. 소개 화면에서 'Next'를 클릭합니다.
  3. Copyright 문을 읽고 'Accept' 를 클릭합니다.
  4. 사이트의 이름을 정하고 'Next'를 클릭합니다. 이 이름은 중복되지 않아야 하고, 공백이나, 특수문자를 사용하면 안됩니다. (site name 은 한 컴퓨터에 여러개의 Zope를 설치할때 사용됩니다.)
  5. 관리자를 위한 username과 password를 입력합니다. 이 username과 password는 Zope의 관리에 사용됩니다.
  6. 'Next'를 클릭하면, Program Files 에 위에서 입력한 사이트의 이름으로 디렉토리가 생기면서 Zope 가 설치될 것입니다.
  7. Zope를 수동적으로 실행시킬 것인지. 아니면, win32 service로 실행시킬 것인지 선택할 수 있을 것입니다. (Windows NT/2000 인 경우)

    win32 service로 설치 한다면, 컴퓨터를 켤때, Zope service가 자동으로 시작될 것입니다.

  8. 'Finish' 를 누르면 설치가 끝납니다.

Zope는 Zope 홈 디렉토리의 start.bat 를 더블 클릭함으로써, 간단히 실행시킬 수 있습니다. ( win32 service로 설치하셨다면, 이런 수고를 하실 필요는 없습니다.)

http://localhost:8080/manage에서 위에서 만든 username과 password로 로그인 하시면, Zope 관리 화면을 보실 수 있으실 것입니다.

네트워크가 설치되어 있지 않다면, MicroSoft Loopback Adapter 를 하드웨어 추가로 추가한 후 실험해 보실 것을 권장합니다.


다음 이전 차례