2011. 9. 6. 11:08

Ubuntu+PHP+mongoDB 구축시 유의 사항

2011/08/03 - [HTML/JS/PHP] - VMWare+Ubuntu+APM(Apache,PHP,MYSQL)+RSYNC 로 웹 서버 환경 구축 하기
2011/09/02 - [HTML/JS/PHP] - ubuntu+php에서 mongoDB 설치하기
2010/10/04 - [Research/Ubuntu] - VMWare에서 ubuntu 설치후 SSH 연결하기
2010/10/01 - [Research/Ubuntu] - ubuntu에서 proxy 서버 설정하기

를 모두 마친 경우, mongodb를 php에서 사용하면 잘~ 되는데, 다음과 같은 몇몇 이슈들이 발생합니다.
여하튼 mongodb를 사용하기 위해서는 X64 OS를 사용해야 할 듯 합니다.

  • mongodb의 32bit limitation
    만약 Ubuntu X86인 경우 mongodb를 설치하고, $ mongod를 실행하면 다음과 같은 경고가 발생합니다.
    ...
    ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
    **       see
    http://blog.mongodb.org/post/137788967/32-bit-limitations
    ...
    즉, 32bit OS에서는 약 2GB의 Size 제약이 따릅니다. 아주 치명적인 상황입니다.
    그것을 해결하기 위해서는, 당연히 Ubuntu X64를 설치하면 됩니다.
    그러면, 위 Step (VMWare+...+mongoDB)을 진행하면, 32 bit 제약 오류는 발생하지 않습니다.
    물론, X64 설치 Step은 위 포스트글 그대로 진행하면 됩니다. 특별한 차이점은 발생하지 않습니다.
  • X64 mongodb의 경고 (spider monkey)
    보통 $ sudo apt-get install mongodb를 통해 설치했다면 발생합니다.
    $ sudo apt-get install mongodb-10gen을 통해 설치했다면 발생하진 않더군요.

    만일 발생한 상황이라면,
    mongo 를 실행하여 mongo client를 설치하면 다음과 같은 경고가 발생합니다. (Ubuntu X64 설치시)
    $ mongo
    MongoDB shell version: 1.6.3
    Mon Sep  5 02:02:49 *** warning: spider monkey build without utf8 support.  consider rebuilding with utf8 support
    connecting to: test
    ...

    해당 warning을 해결 하기 위해서는 다음 URL을 참고하면 됩니다.
    http://www.mongodb.org/display/DOCS/Building+for+Linux
    중간에 git가 사용되는데, 만일 proxy 네트웍 환경이면 실패될 수 있습니다.
    따라서 proxy 연결을 위해서는,
    http://blog.naver.com/PostView.nhn?blogId=cst007&logNo=100110592104
    를 참고하면 됩니다.

    일단, 위 두개의 site를 참고하여 spider monkey를 build하는 과정은 다음과 같습니다.
    $ sudo apt-get -y install tcsh git-core scons g++
    ...
    update-alternatives: using /bin/tcsh to provide /bin/csh (csh) in auto mode.
    $ sudo apt-get -y install libpcre++-dev libboost-dev libreadline-dev xulrunner-1.9.2-dev
    ...
    ldconfig deferred processing now taking place
    $ sudo apt-get -y install libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev libboost-date-time-dev
    ...
    ldconfig deferred processing now taking place

    그리고 다음과 같이 git를 실행합니다.
    $ sudo git clone git://github.com/mongodb/mongo.git

    만일 proxy 환경에서는 다음과 같은 오류가 발생할 수 있습니다.
    Cloning into mongo...
    github.com[0: 207.97.227.239]: errno=Connection refused
    fatal: unable to connect a socket (Connection refused)

    그럼, 다음과 같이 진행합니다. (git가 실패된 경우 진행하십시요. /bin/gitproxy를 gedit/vi 로 편집필요)
    $ sudo apt-get install socat
    ...
    Processing triggers for libc-bin ...
    ldconfig deferred processing now taking place
    $ sudo gedit /bin/gitproxy
    _proxy=XXX.XXX.XXX.XXX
    _proxyport=XXXX
    e
    xec socat STDIO PROXY:$_proxy:$1:$2,proxyport=$_proxyport
    $ sudo git config --global core.gitproxy gitproxy
    sudo chmod 0711 /bin/gitproxy
    $ sudo git clone git://github.com/mongodb/mongo.git
    Cloning into mongo...
    remote: Counting objects: 86137, done.
    remote: Compressing objects: 100% (21766/21766), done.
    ...
    와 같이 git가 성공됩니다.
    $ cd mongo
    mongo$ git tag -l
    0.9.1
    1.7-cut
    idxv1
    r0.0.3
    ...
    r1.9.1
    r1.9.2
    r2.0.0-rc0
    r2.0.0-rc1
    즉, 1.9.2가 대상임을 확인할 수 있습니다.
    mongo$ sudo git checkout r1.9.2
    HEAD is now at dfcdcf1... BUMP 1.9.1
    mongo$ sudo scons all
    scons: Reading SConscript files ...
    scons version: 2.0.1
    python version: 2 7 1 'final' 0
    Checking whether the C++ compiler worksyes
    Checking for C library stdc++... yes
    ...
    ... (Long Build Job)
    ...
    scons: done building targets.
    mongo$ sudo scons --prefix=/opt/mongo install
    scons: Reading SConscript files ...
    scons version: 2.0.1
    python version: 2 7 1 'final' 0
    Checking whether the C++ compiler works(cached) yes
    ...
    scons: done building targets.
    와 같이 진행하면 된다고 하는데, 저 같은 경우는 되지 않았습니다.
    되도록이면 $ sudo apt-get install mongodb-10gen을 통해 설치하도록 합시다.

'Web > PHP' 카테고리의 다른 글

ubuntu+php에서 mongoDB 설치하기  (0) 2011.09.02
PHP Shell  (0) 2011.08.03
VMWare+Ubuntu+APM(Apache,PHP,MYSQL)+RSYNC 로 웹 서버 환경 구축 하기  (0) 2011.08.03