ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • openfire 설치하기
    프로그래밍/네트워크 관련 2010. 12. 24. 18:30

    우선 글을 적기 전에, 전 c/c++을 전문으로 해왔지만, 처음 프로그램을 시작한 2000년부터 지금까지 줄곧 

    일반 윈도우 유틸리티 및 윈도우쪽 미디어 플레이어등의 일반적인 독립 어플리케이션만을 개발, 연구해왔습니다.


    linux는 2000년도였나... 페도라였나 암튼 그게 처음 나왔을당시 시디를 무료로 준다고 해서 신청해봤더니

    저 멀리 바다건너서 무려 세박스나 날라와서;;;;

    곤욕을 치뤘던 기억이 있을뿐 한번 도 제대로 사용해 본적이 없습니다.

    그나마 2008년초부터 아이폰/맥 관련 프로그래밍을 사용하면서 unix와 관련된 글들을 살짝살짝 읽어보기만 했었죠.


    이번에 프로젝트에 채팅기능을 넣어달라해서 급하게 opensource를 찾던중에 openfi re(http://www.igniterealtime.org/projects/openfire/index.jsp)에 대해 알게되었습니다.


    다행스럽게, 이미 오랜시간이 지나 상당히 안정적으로 작동하는것 같아 보입니다.

    발주업체쪽에  linux서버를 사용해 달라고 하더군요.


    openfire가 메신져 서버라고 하는데, 공개 채팅서버로 커스텀해서 사용해야 합니다.


    우선 제가 구성할 환경입니다.


    --------------------------------------------------------------------------------------------------------

    Platform : centOS 5.5 i386 32Bit edtion ( http://isoredirect.centos.org/centos/5/isos/i386 )

    Openfire server : Openfire 3.6.4 rpm  (centOS는 redhat 기반 linux입니다) 

                            ( http://www.igniterealtime.org/downloads/index.jsp#openfire )

    Client : iPhone iOS (4.0)

    Database : MySQL

    --------------------------------------------------------------------------------------------------------


    jre가 이미 설치되어 있으면 rpm으로 받지 말고, 그냥 tar.gz로 압축된걸 받으면 별도로 설치할필요는 없는것 같습니다.

    ..하지만 뭔가 자동으로 해준다는 기분이 들기에 rpm으로 받았습니다.


    우선 공식 사이트의 문서를 살펴보겠습니다. (실제로 저도 지금 살펴보고 있습니다. 처음 써보면서 쓰고있습니다.)

    (http://www.igniterealtime.org/projects/openfire/documentation.jsp)


    문서를 보면 우선... openfire 이전에 wildfire라는 명칭을 사용했던것 같습니다. 

    설치 가이드(http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/install-guide.html)를 보면

    자세한 설치법이 나와있다고 합니다. (...만 무식해서 못알아먹겠습니다.)


    "오픈파이어는 XMPP 프로토콜을 탑재한, 아주 강력한 IM/채팅 서버입니다"


    라고 가장 위에 나와있습니다. 어설프게 알던데로, 메신져 전용 서비스가 아닌가봅니다. 

    채팅서버를 만들어야 하는 제 입장에서 아주 다행스러운 일이군요. 생각보다 커스텀할게 없을지도 모르겠습니다.



     참고로, 윈도우에서 사용하실분은 그냥 보통의 인스톨을 하시면 된다고 합니다.  




    지금 봐야할건 linux/unix에서의 설치.


      Linux/Unix

      Choose either the RPM or tar.gz build. If using the RPM, run it using your package manager to install Openfire to /opt/openfire:

      rpm -ivh openfire_3_0_0.rpm

      If using the .tar.gz, extract the archive to /opt or /usr/bin:

      tar -xzvf openfire_3_0_0.tar.gz
      mv openfire /opt

      Note: the .tar.gz build does not contain a bundled Java runtime (JRE). Therefore, you must have JDK or JRE 1.5.0 (Java 5) or later installed on your system. You can check your java version by typing "java -version" at the command line and (if necessary) upgrade your Java installation by visiting http://java.sun.com




    위는 공식 사이트의 설명입니다. 뭔소리니...
    저는 RPM을 설치할겁니다. 



    RPM의 설치: 
    (로컬 터미널 또는 원격 ssh를 이용하면 될것 같습니다. ssh설치에 대해 별도로 다루겠습니다. 아직 설치안해봤습니다...)

    /opt/openfire 를 만들어 놓고 다운받은 rpm파일을 저장한담에, 다음 명령으로 설치합니다.
    rpm -ivh openfire_3_0_0.rpm



    tar.gz에는 자바런타임(JRE)가 포함되어 있지 않으니 반드시 JDK나 JRE1.5 이상버젼을 설치해야 한답니다.
    명령줄에 "java -version"을 치면 확인할수 있다는군요. 위에 말씀 드렸지만, 이래서 rpm을 골랐었죠.
    리눅스에 익숙하지 않으니, 하나라도 덜 설치해야 합니다. 뭐 하나 설치하는것도 엄청난 일이거든요!
    적어도 저에게 이건 a*알고리즘을 새로짜는것보다 어렵습니다.


    대충 위의 것만으로 설치는 다 끝난것 같습니다. 아주아주 간단하군요.
    하지만, 설치를 완료하려면 몇가지 더 하라고 합니다. 끔직하지만 어쩔수없죠.
    서버 프로그램을 새로 짜는것보다 몇배는 빠르고 안정적일테니까요.


    몇가지의 추가 설정:

    1. 데이터베이스: 외부 데이터베이스를 사용할경우, 알아서 사용할 데이터베이스를 준비하세요. 
                          (정확히 어떤경우에 외부 DB가 필요한지는 차차 알아보도록 하겠습니다. ;; )
    2. Setup : 내장된 웹기반 도구를 이용해서, 설정 및 서버구성을 하셔용. (내일하게될겁니다)
    3. Admin Console : 웹기반 관리도구로 서버를 관리합니다.



    ... 2,3번은 무난해 보이지만, DB를 설치해야할것 같습니다. 어디에?
    linux에 말이죠. 그럼 여기까지 했다치고, 남은걸 정리해보겠습니다.

    - centOS에 원격접속 할수있는 ssh 설치/설정.
    - 그나마 무료로 사용할수 있는 mySQL 설치/설정 및 openfire와 연동.
    - (해야한다면)원하는 기능으로 작동할수 있게 openfire 기능 수정. (APNS/아이폰 푸쉬 기능이 필요합니다.)
    - 규격에 맞는 채팅기능 추가(클라이언트, 이부분은 공개하지 못합니다)
      (XMPP로 해야하는지 소켓으로 해야하는지도 파악 못했습니다. 다들 못하셨겠죠? 뭐 우선 그런 사소한(?)건 신경쓰지 맙시다)


    이 문서 생각보다 자세하고 친절한것 같네요. 윈도우와, 리눅스/유닉스에서의 작동 및 추가 플러그인을 설치하는 법까지 다루고있습니다.


    개인적인 목적으로, 쓰고 있는 글이라 어떻게 될지는 모르겠네요 .

    '프로그래밍 > 네트워크 관련' 카테고리의 다른 글

    한글이 죽어도 안되는 openfire + mysql  (6) 2010.12.25
    openfire 설치 - 2  (0) 2010.12.25
    SQL 쿼리 NULL에 한번 좌절.  (0) 2010.12.13
    랭쿠.  (0) 2010.12.13
    http post메소드 값 전송하기 - 1  (0) 2010.12.12

    댓글

Designed by Tistory.