Django 서비스 배포 (9) - Ubuntu 서버 구축 및 파이썬 설치
해당 글은 비전공자를 위한 개발 동아리 피로그래밍에서 진행했던 세션의 정리본 입니다.
우선 서버가 생성되고 해당 서버에 들어가시게 된다면 그 서버에는 정말 아무것도 설치되지 않은 초기의 상태일 겁니다. Linux는 Window나 Mac OS 와 다르게 자동 업데이트가 안되고 최신 버전의 환경을 먼저 적용시키기 위해서는 아래의 명령어들을 실행시켜야 합니다.
$ sudo apt-get update
$ sudo apt-get upgrade
이 두 가지를 실행하지 않는다면 여러분이 이후에 설치하실 python 과 django가 해당 버전의 Linux서버가 개발된 상태의 버전으로 받아지게 됩니다. 한 마디로 옛날 버전이 다운된다는 거에요. 그래서 우리는 Linux의 환경을 업데이트 해주고 그 업데이트를 적용(업그레이드) 해주어야 합니다.
아래는 실행한 화면 입니다. 중간에 y/n라고 나오는 부분에선 y를 입력하고 엔터 누르시면 됩니다.
sudo apt-get update
sudo apt-get upgrade
이제 Django를 사용하기 위하여 파이썬과 가상환경을 설치해볼게요! 여기서부터는 윈도우와 맥 사용자분들 모두 python3 을 사용해주세요.
$ sudo apt-get -y install python3
$ sudo apt-get -y install python3-pip
$ sudo pip3 install --upgrade pip
그럼 무엇인가 이렇게 설치가 되실 겁니다.
가상환경을 실행시켜주는 모듈도 받아볼게요!
$ sudo apt-get -y install python3-venv
이후에 가상환경을 실행시켜봅시다.
$ python3 -m venv venv
$ source venv/bin/activate
#이젠 우리 모두가 같은 리눅스 서버를 사용중이므로 Scirpts가 아니라 bin 입니다. 주의해주세요!
(venv) 표시가 보인다면 성공입니다. 여러분은 지금까지 AWS 인스턴스와 탄력적 IP를 연결하여 서버를 할당 받았습니다. 이후에 그 서버에 SSH 를 통해 접속하여 파이썬과 venv (가상환경) 설치를 마쳤습니다. 이제 실제로 장고를 실행해볼게요.
아래 명령어를 입력하여 장고를 설치해주세요. (저는 3.2.0 버전을 명시해서 받겠습니다.)
$ pip3 install django==3.2.0
example이라는 폴더를 만드시고 cd 명령어를 이용하여 그 안으로 들어가 주세요.
아래의 명령어로 장고 프로젝트를 시작해주세요. 이름은 config로 하고 현재 디렉토리(example 폴더)를 root directory로 사용하겠습니다.
$ django-admin startproject config .
그 다음에 우리에게 익숙한 아래의 명령어를 실행해서 프로젝트를 실행시킵니다. (migrate는 실행하지 않겠습니다.)
$ python3 manage.py runserver
프로젝트를 실행했죠? 그러면 여러분이 매번 들어갔었던 127.0.0.1:8000으로 접속해볼까요?
네 이렇게 접속이 안됩니다. 지금 우리는 127.0.0.1, 그러니까 우리 컴퓨터에서 프로젝트를 시작한 것이 아닙니다. 우리가 할당받은 서버 컴퓨터 공간에서 프로젝트를 실행했고 그 공간은 탄력적 IP 할당때 배정받은 공인 IP를 주소로 갖는다고 했죠? 그래서 그 주소를 입력해야 여러분들이 방금 실행했던 서비스에 접근할 수 있습니다. 그럼 지금 여러분들의 [IP주소]:8000 을 입력해보세요.
…? 그래도 접속 안되는데요?
네 하나를 더 해줘야 합니다. 여러분들이 여러분 컴퓨터에서 프로젝트를 실행할 때는 상관 없지만, 외부 컴퓨터에서 장고 프로젝트를 실행시킬 때는 Allowed Host 설정을 해줘야 합니다. 말 그대로 어떤 사용자의 접속을 허용할 것인지 명시해줘야 해요. 지금은 모든 사용자들이 다 접속 가능하도록 하겠습니다. 아래의 명령어를 실행해주세요.
$ cd config
$ nano settings.py
그럼 터미널에 이런 화면이 보일 겁니다. nano는 파일을 편집할 수 있는 에디터 중 하나에요. 우리는 settings.py 의 내용을 수정해서 ALLOWED HOST 내용을 바꿔줄 겁니다. 아래로 내려보면 이런 구문이 있을거에요.
ALLOWED_HOST = []
이걸 이렇게 바꿔주면 됩니다.
ALLOWED_HOST = ['*']
다 바꾸셨다면 ctrl + x를 누르시고 y를 누르신 후 엔터를 쳐주세요. 다시 manage.py가 있는 디렉토리로 이동하신 뒤 프로젝트를 실행시킵니다.
$ cd ..
$ python3 manage.py runserver 0.0.0.0:8000
오 이제 뭔가 실행되지 않나요? 우리에게 익숙한 장고 로켓이 보입니다!
저기서 0.0.0.0 이 모든 IP주소를 다 지칭하는 말입니다. 8000은 포트 번호구요. 즉 아래와 같은 말입니다.
“내가 장고 프로젝트를 실행할 건데, 어떤 IP 주소라도 8000번 포트로 들어오면 우리 서비스로 연결해줘!"
여러분들은 방금 AWS 로부터 빌린 컴퓨터에 장고 프로젝트 하나를 실행한 뒤에 IP주소를 통해서 접속해보는 것 까지 완료하셨습니다! 축하드립니다~!
다음 시간부터는 이 서버에 파이썬 프로젝트를 동작시켜 볼게요!
Linux에서는 여러분들이 깃 배시나 맥의 터미널에서 사용했던 명령어들을 사용하실 수 있습니다.
그 중에서 몇 가지만 소개할게요!
# 해당 디렉토리의 파일을 보여줌
$ ls
# 해당 디렉토리의 파일을 세부 정보와 함께 보여줌
$ ls -al
# 디렉토리 이름과 같은 폴더가 생깁니다.
$ mkdir {디렉토리 이름}
# {디렉토리 이름} 디렉토리로 이동
$ cd {디렉토리 이름}
# 상위 디렉토리로 이동
$ cd ..
# {파일}을 명시한 {경로}로 복사한다
$ cp {파일} {경로}
# {파일}을 명시한 {경로}로 이동한다
$ mv {파일} {경로}
# 파일 이름을 {이전 파일 이름}에서 {바꿀 파일 이름}으로 바꾼다
$ mv {이전 파일 이름} {바꿀 파일 이름}
# {파일}을 삭제한다.
$ rm {파일}
# 해당{디렉토리} 폴더를 삭제한다.
$ rm -r {디렉토리}
# 해당 {파일}을 강제로 삭제한다.
# 절대 절대 함부로 실행하지 마세요.
$ rm -f {파일}
# 해당 {디렉토리}를 강제로 삭제한다.
# 절대 절대 함부로 실행하지 마세요.
$ rm -rf {디렉토리}
이 외의 리눅스 명령어는 아래의 블로그를 참고해 주세요. 위의 명령어들만 아시더라도 충분합니다.
유닉스 명령어 목록 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 셸 명령어인 유닉스 명령어는 아래와 같이 SUS의 일부인 IEEE Std 1003.1-2008에 지정된 유닉스 명령어의 목록이 있다. 이 명령어들은 유닉스 운영 체제와 리눅스(Linux
ko.wikipedia.org