10. 리눅스(CentOS) 개발 놀이터 만들기 - Node.js 그리고 Mongodb 설치

블로그이전(http://cionman.tistory.com/)으로 자료를 옮겨 옵니다.

안녕하세요~

오늘은 간단하게 웹개발의 필수로 자리잡은 Node.js와 NoSQL 대표주자인 Mongodb를 설치를 진행해보겠습니다.

1. Nodejs 설치

  • 설치에 관련된 설명은 아래 링크를 참조하였습니다.

https://nodejs.org/ko/download/package-manager/

  • Nodejs 8버전을 설치하기 위하여 아래명령어를 실행합니다.
$ curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash --

10-1

  • Node.js 설치 준비가 완료되었습니다. 아래의 명령어로 install 합니다.
$ yum install nodejs -y
  • 설치를 확인합니다
$ node --version
$ npm --version

2. MongoDB 설치

  • 설치 할 버전은 Community Edition 3.4 버전입니다. CentOS가 redhat계열이라 아래 링크를 참조하였습니다.
  • https://docs.mongodb.com/master/tutorial/install-mongodb-on-red-hat/
  • vi에디터로 아래의 파일을 생성합니다. yum 으로 install하기 위해 repo정보를 작성하기 위함입니다.
$ vi /etc/yum.repos.d/mongodb-org-3.4.repo
[mongodb-org-3.4] 
name=MongoDB Repository 
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/  
gpgcheck=1 
enabled=1 
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

10-2

  • 설치 준비가 완료되었으니, 인스톨 합니다.
$ yum install -y mongodb-org
  • 인스톨 후 서비스에 등록 및 실행을 합니다.
$ systemctl enable mongod 
$ systemctl start mongod
  • 이제 명령어 mongo 를 입력하시면 Mongodb에서 쿼리를 입력할수 있게 됩니다.
$ mongo

10-3

  • 원격지에서 접속할 계정을 생성하기위해 user를 생성해야합니다. 아래의 쿼리를 입력합니다.
use admin
db.createUser({             
    user: “유저아이디" ,             
    pwd: “패스워드",             
    roles: [ "userAdminAnyDatabase","readWriteAnyDatabase” ] 
})
  • exit 를 입력하면 mongodb 에서 빠져나올 수 있습니다.
exit
  • 보안을 위해 포트를 변경하겠습니다.
  • mongodb 설정 파일은 /etc/mongod.conf 입니다.
  • 이를 vi 에디터로 오픈합니다.
$ vi /etc/mongod.conf 
  • 오픈하고 나서 파일의 내용중에 ‘port’ 를 검색합니다.
  • vi 에디터 에서는 / 를 입력하시고 port를 입력 엔터를 하시면 검색이 됩니다.

10-4

  • 위 쪽을 보시다시피 port가 27017이 기본 포트인데 원하시는 포트로 변경합니다.
  • 수정할 부분이 더 있는데요, 원격지에서 Mongodb를 사용하시려면 ‘bindIp’ 부분도 접속할 곳의 Ip를 입력하셔도 되고, 모든 곳에서 원격접속을 허용 하시려면 bindIp부분을 ‘#’ 기호로 주석처리하시면 됩니다.
  • 그리고 또 하나, Mongodb가 기본이 인증 없이 접속이 가능한데, 이를 인증을 받은 유저만 접속이 가능하게 하려면 ‘#security’ 부분에서 #을 제거 하고 아랫줄에 authorization: enabled 을 입력합니다.
  • 글쓰면서 알게된 주의점 하나 authorization 앞부분에 띄어쓰기할 때 space 띄어쓰기는 괜찮은데, tab키로 띄어쓰기하면 service restart는 에러 없이 되나 journalctl -xe 명령어로 시스템 로그를 보면 에러가 나있더군요.. tab키는 금지가 되겠습니다.

10-5

  • 이렇게 수정 한 후 저장하고 빠져 나옵니다. 변경한 포트의 방화벽을 오픈합니다.
$ firewall-cmd --permanent --add-port=변경한포트/tcp
$ firewall-cmd --reload
  • Selinux의 mongdb포트 설정을 변경합니다.
$ semanage port -a -t mongod_port_t -p tcp 변경한포트
  • 서비스를 restart합니다.
$ systemctl restart mongod
  • Mongodb client프로그램으로 접속해봅니다. 저는 Mac용으로 Robomongo라는 프로그램을 설치하여 접속해보았습니다.

10-6