Ubuntu기반의 서버에 Django 가상환경(pyenv, virtualenv) 설정 및 서버 실행하기
1. Ubuntu에서 pyenv, virtualenv 설치
Python은 2.x와 3.x버전 사이에 지원하는 기능의 차이가 많아 버전관리 문제가 있다. 그래서 대부분의 python 사용자들은 pyenv와 virtualenv를 사용하여 가상환경을 생성하고 python 버전을 관리한다.
패키지 설치하기 전에 아래와 같이 업데이트를 해주도록 하자.
1). build 패키지 설치
Ubuntu에서 Build 할 때 공통적으로 발생하는 문제를 방지하기 위해 필요한 패키지들을 설치해 준다.
2). pyenv, virtualenv 설치
pyenv 란 다양한 버전의 python을 설치할 수 있도록 하는 라이브러리이며, pyenv를 이용하면 원하는 버전의 python을 로컬에 설치할 수 있다.
virtualenv 란 서로 다른 종류의 python버전을 관리하는 관리자이며, 여러 개의 python버전을 로컬에서 사용할 수 있도록 한다.
죽, pyenv로 원하는 python버전을 설치하고, virtualenv로 구성한 가상환경에서 사용자가 원하는 python 버전을 사용할 수 있다.
2. python 가상환경 설정
1). pyenv로 python 3.6.7 설치
2). virtualenv로 가상환경 설정
pyenv local 명령을 수행한 후, 이 폴더에 접속하면 자동으로 가상환경으로 접속된다.
3. Django 프로젝트 생성
1). 가상환경안에 django 설치
pyenv와 virtualenv로 독립된 가상환경을 만들었으므로 해당 폴더 안에서만 django가 설치된다.
2). Django 프로젝트 생성
현재 디렉토리(가상환경)에 프로젝트를 생성한다.
맨뒤에 ‘.’을 붙여야 하위 폴더가 생성되지 않고, 현재 위치에 바로 프로젝트가 생성(managy.py가 현재 위치에 설치 됨)된다.
현재 폴더에 managy.py와 생성한 프로젝트 폴더가 생성된 것을 확인 할 수 있다. 전체적인 구조는 아래와 같다.
4. Django 서버 실행
1). ALLOWED_HOSTS 설정
settings.py에 ALLOWED_HOSTS의 값을 EC2의 Public DNS로 설정해야만 외부 사용자가 해당 DNS를 통해 접속할 수 있다.
나노 에디터를 사용하여 settings.py를 수정하자.
주의 할 점은 EC2의 Public DNS의 값이 ‘https://ec2-{}.compute.amazonaws.com’라면 아래와 같이 https://는 제거하고 넣어준다.
2). Django 서버 실행
이제 어디에서든 ALLOWED_HOSTS에 설정해준 주소와 8000번 포트를 이용해 Django 서비스에 접속 할 수 있다.
https://ec2-{본인의 EC2 DNS 참고}.compute.amazonaws.com:8000로 접속했을 때 아래와 같은 화면이 나온다면 성공이다.
만약 runserver 명령어 실행시 아래와 같은 에러가 뜬다면 migrate 하고 다시 서버를 실행시키자.
[추가] 80번 포트로 Django 실행하기
Django는 기본적으로 8000번 포트로 실행되는데, 80 포트로 접속을 허용하고 싶다면 아래와 같은 명령어를 사용하면 된다.