본문 바로가기
개발(Develop)/웹(Web) _프로젝트project

웹서버 / 리눅스 환경의 서버 컴퓨터 개발환경 세팅하기/ 서버 환경 명령어 통일하기/ 환경설정 쉘 명령어/ pip, mongoDB, 시간 동기화, python3

by 왁왁s 2021. 6. 15.

우선 파일질라(FileZilla) 프로그램을 켜서, 서버 컴퓨터에 접속을 한다.

 

접속하는 부분은 이전 글을 참고해서, 거기까지 완료하고 이 글을 보도록 하자 

아래 참고 ▼

파일질라(Filezilla)로 서버 접속하기/ 서버에 파일 전송해 서버 컴퓨터로 파일 실행시켜보기

 

웹 / 파일질라(Filezilla)로 서버 접속하기/ 서버에 파일 전송해 서버 컴퓨터로 파일 실행시켜보기

파일질라(FileZilla)라는 FTP 프로그램을 통해 가상 컴퓨터, 즉 만들어둔 서버(server) 컴퓨터에 파일을 전송하고, 서버 컴퓨터에서 파일을 실행하는 과정을 해보자. FileZilla가 내 컴퓨터에 설치가 안

parkjh7764.tistory.com


이번 글에서 할 것은 서버 컴퓨터의 개발 환경을 세팅할 것이다!

이유는 우리의 컴퓨터를 생각해보면 된다.

우리가 개발을 하기 위해서 데스크탑에 파이썬을 설치하고, 파이썬 라이브러리를 다운로드 받고,

데이터베이스를 사용하기 위해 몽고DB(mongoDB)도 다운로드 받고 했던 것처럼

 

우리가 AWS에서 구입한 인스턴스라는 가상의 서버 컴퓨터도 개발환경을 세팅해줘야 한다!

새로 구입한 컴퓨터에 프로그램들을 설치해준다고 생각하면 된다.

 

그런데 조금 다른 점은, 우리 컴퓨터에선 GUI를 제공하는 웹에 들어가 마우스 클릭으로 다운로드를 받았지만,

우리가 구입한 서버 컴퓨터는 '리눅스' 환경이기 때문에 명령어를 통해 다운로드를 받아줘야 한다.

 

그럼 바로 해보자.


1. 한국 시간 세팅하는 코드


아래 코드를 복사 ctrl+C 를 한 다음에, 서버에 접속한 Git Bash에

마우스 우클릭으로 'Paste(붙여넣기)'를 해준다.

 

EC2 컴퓨터의 시간대를 아시아(Asia)에 있는 한국 서울(Seoul) 시간으로 맞추라는 명령어이다.

sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime


2. 파이썬 실행 명령어를 python3 → python 으로 사용


이 설정을 왜 하나 싶을텐데, 파이썬 코드를 실행하는 일이 많은데

일일이 파이썬 버전을 확인해서 python3, python2 숫자를 치는 것보다 python으로 통일하면 편하기 때문이다.

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

3. pip3 설치 pip3 명령어 → pip 명령어로 사용

 pip는 '패키지 관리자'로 우리가 파이참(PyCharm)에서 손쉽게 파이썬 라이브러리를 마우스 클릭만으로

설치했던 것을 리눅스 환경에서는 'pip' 명령어를 통해서 라이브러리를 설치해줘야 한다.

 

한 줄 씩 복사해서 사용한다.

# pip3 설치하기
sudo apt-get update
sudo apt-get install -y python3-pip
# pip3 명령어 대신에 pip 명령어 사용하기
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

4.  몽고DB(mongoDB) 데이터베이스 설치


가상의 서버 컴퓨터에서도 데이터베이스를 사용해야 하기 때문에, 마찬가지로 mongoDB를 설치해줘야 한다.

# 몽고DB 데이터베이스 설치
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org

4-1. 몽고DB(mongoDB) 실행하고 접속 계정 생성하기


서버 데이터베이스를 만드는데, 아무나 데이터베이스에 들어가게 하면 안 되지 않는가...

여기서 서버 데이터베이스에 대한 계정을 생성하는데 

말 그대로 사용자 계정과 비밀번호를 설정하는 것이다.

# mongoDB 실행하기
sudo service mongod start
# mongoDB 접속 계정 생성하기 / 좌측에 '>' 표시가 떠야 생성 가능 
mongo
# admin으로 계정의 데이터베이스로 전환
use admin;
# admin 계정의 계정 이름과 비밀번호 설정 / user: "계정 이름", pwd: "비밀번호", roles:["권한"]
db.createUser({user: "test", pwd: "test", roles:["root"]});

4-2. 몽고DB(mongoDB) 외부에서 접근할 수 있도록 허용해주기

# sudo : 관리자 권한으로 /etc 폴더 아래에 mongod.conf 파일을 Vim으로 키라는 명령어
sudo vi /etc/mongod.conf

# 입력모드로 전환
i

위에 내용을 아래와 같이 바꿔주면 됨.

# esc 키를 누르고 :wq를 작성한 후 엔터/ 내용 저장하고 에디터 종료하라는 명령어
:wq
# mongoDB 재시작 명령어
sudo service mongod restart

5. 포트 포워딩 ( 80 포트로 들어오는 요청을 5000 포트로 넘겨주는 명령어)

이는 나중에 url 주소를 치고 들어올 때, localhost:5000 주소를 쳤던 것처럼

뒤에 포트 주소를 치지 않고 url 만 입력해도, 5000 포트로 들어오게끔 하기 위함이다.

# 포트포워딩 ( 80포트 → 5000포트)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

자. 이제 스스로 해보는 세팅은 끝났다.

그런데 이걸 언제 다 하고 있는지.. 귀찮은 사람이 있을테니

하나하나 해보며 공부하는 것도 좋지만

한 번에 세팅할 수 있도록 쉘 명령어 실행 파일을 준비했다.

initial_ec2.sh
0.00MB

 

 

해당 파일의 대한 쉘 명령어 내용은 아래와 같다.

위에 .sh로 끝나는 파일이 뭔가 수상하고 의심이 간다면,

아래에 쉘 명령어 코드를 복사해서 .sh 확장자로 저장한 다음에 아래에 설명을 따라하자.

# UTC to KST
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# python3 -> python
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

# pip3 -> pip
sudo apt-get update
sudo apt-get install -y python3-pip
pip3 --version
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

# port forwarding
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

# MongoDB - install
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org

sudo mkdir -p /data/db

# MongoDB - run
sudo service mongod start
sleep 7
netstat -tnlp

# MongoDB set user, set conf file
mongo admin --eval 'db.createUser({user: "test", pwd: "test", roles:["root"]});'
sudo sh -c 'echo "security:\n  authorization: enabled" >> /etc/mongod.conf'
sudo sed -i "s,\\(^[[:blank:]]*bindIp:\\) .*,\\1 0.0.0.0," /etc/mongod.conf

sudo service mongod stop
sudo service mongod start
sleep 5
netstat -tnlp

자. 그러면 initial_ec2.sh 파일을 준비했다고 가정하고 

한 번에 세팅하는 것을 같이 해보자.

 

우선 파일질라(FileZilla) 프로그램을 켜준다. 그러고는 우리 로컬 컴퓨터에 있는

initial_ec2.sh 파일을 서버 컴퓨터로 마우스 드래그를 통해 전송해준다.



그리고 Git Bash 프로그램을 실행하고, 서버 컴퓨터에 접속한다.

파일질라를 통해 이동시킨 initial_ec2.sh 파일을 실행시킬 건데

우선 해당 파일이 있는 디렉터리로 이동해야 한다. 'cd' 명령어로 디렉터리에 들어가준다.

그리고 해당 디렉터리 안에 있는 .sh 쉘 파일을 관리자 권한으로 실행시켜줘야 한다.

 

관리자(sudo) 권환으로 initial_ec2.sh 파일 실행
sudo chmod 755 initial_ec2.sh

리눅스 명령어를 작성할 때 앞에 붙는 'sudo'는 

영어로 풀어보면 substitute user do이다.

직역하면 대체 사용자가 한다는 말로,

root 계정을 대신해서 root 권한에 접근해 사용하는 것이다.

root 계정은 관리자 계정이라고 생각하면 된다.


chmod 라는 명령어는 '파일 권한을 변경'하라는 명령어이다.

사용방법은

chmod [권한을 바꿀 유저] [수정할 권한] [파일명] 이렇게도 쓰는데,

 

위에 명령어는 아래 방법으로 사용한 것이다.

chmod [user 권한숫자 또는 group권환숫자 또는 others권한숫자] [파일명]

# 현재 위치한 디렉터리에서 initial_ec2.sh 파일을 실행하는 명령어
./initial_ec2.sh

 

' ./ ' 는 우리가 현재 위치한 디렉터리를 뜻한다. 현재 위치한 디렉터리에서

./[파일명] 해당 파일을 실행시키라는 것이다. 

initial_ec2.sh 쉘 파일을 실행하면 아래와 같이 다운로드가 되면서 개발환경이 세팅된다.

1~3분 정도 기다려주면 된다.

설치가 완료되면 아래와 같이 명령어를 입력할 수 있는 상태로 바뀌게 된다.


개발환경 세팅이 완료되었으면 잘 적용되었는지 확인을 해보자.

 

자. 그러면 다시 hello.py 파일을 실행시켜서 안에 작성된 print(" ") 코드가 잘 출력되는지 보자.

ls 명령어로, 현재 디렉터리에 hello.py 파일이 있는지 확인을 하고python3 hello.py명령어가 아닌 python hello.py 명령어파이썬 파일을 실행시켜본다.

 

잘 실행되는 것을 볼 수 있다.

 

그리고 추가적으로 mongoDB 데이터베이스를 설치했는데,몽고DB가 잘 설치되었는지 'mongo'를 쳐서 실행시켜보자.


몽고DB도 잘 설치가 되었다. exit 명령어를 입력하면

bye가 나오면서 접속한 몽고DB에서 나올 수 있다.


짜잔. 개발환경 세팅을 해보았다. 직접 하나하나 설치해볼 수도 있지만

준비한 initial_ec2.sh 파일을 이용하면 한 번에 세팅이 완료된다.

 

아직 서버 컴퓨터에 대한 개발 환경이 모두 세팅된 것은 아니지만

리눅스 환경에서 어떻게 개발환경을 세팅하는지 맛보기 정도? 할 수 있었다.

 

굳잡 ! 

댓글