본문 바로가기
CodeLab/Linux

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

by 블리드카가 2017. 5. 31.
728x90
안녕하세요~ 
 
 지난 글에서 제가 Gitlab설치에 도전하겠다고 말씀을 드렸는데요, Gitlab설치를 위해 사전에 설치를 해야하는 것들이 있는데 그 중 에 하나인 Mail Server를 위한 Postfix 설치는 잘 되었지만, ipblock 메세지로 메일 발송이 되질 않아 조금 더 자료를 확인 한 후에 Gitlab관련 글은 차후에 진행하겠습니다 ㅜ.

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

 
    1. Nodejs 설치

설치에 관련된 설명은
여기 내용을 참조하였습니다.

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


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



    2. MongoDB 설치

설치 할 버전은 Community Edition 3.4  버전입니다. CentOS가 redhat계열이라 아래 링크를 참조하였습니다.


우선, 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



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


원격지에서 접속할 계정을 생성하기위해 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를 입력 엔터를 하시면 검색이 됩니다.


위 쪽을 보시다시피 port가 27017이 기본 포트인데 원하시는 포트로 변경합니다.

수정할 부분이 더 있는데요, 원격지에서 Mongodb를 사용하시려면 ‘bindIp’ 부분도 접속할 곳의 Ip를 입력하셔도 되고, 모든 곳에서 원격접속을 허용 하시려면 bindIp부분을 ‘#’ 기호로 주석처리하시면 됩니다.

그리고 또 하나, Mongodb가 기본이 인증 없이 접속이 가능한데, 이를 인증을 받은 유저만 접속이 가능하게 하려면 ‘#security’ 부분에서 #을 제거 하고 아랫줄에 authorization: enabled 을 입력합니다.

글쓰면서 알게된 주의점 하나 authorization 앞부분에 띄어쓰기할 때 space띄어쓰기는 괜찮은데, tab키로 띄어쓰기하면 service restart는 에러 없이 되나 journalctl -xe 명령어로 시스템 로그를 보면 에러가 나있더군요..
tab키는 금지가 되겠습니다. 

이유는 알게되는데로 추가하겠습니다~



이렇게 수정 한 후 저장하고 빠져 나옵니다. 변경한 포트의 방화벽을 오픈합니다.
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라는 프로그램을 설치하여 접속해보았습니다.







728x90