[Django] 배포
DJANGO WEB DEVELOPMENT
5. 배포
배포 방법
- IaaS(Infrastructure as a service)
- 서버 장비 + 운영체제만 제공, 그 외 필요한 프로그램은 개발자가 직접 설치 및 설정
- 학습할 것이 많지만, 최적의 환경 구성 가능
- AWS EC2 등
- PaaS(Platform as as service)
- 서버 장비 + 운영체제 + 실행환경 제공
- 학습할 것이 적어, 프로젝트에 집중 가능
- AWS Elastic Beanstalk, Google App Engine HEROKU 등
베포 전 사전작업
# 베포 전 디버그 모드로 바꾸기
# 'costaurant' directory의 settings.py 파일
...
DEBUG = False
...
# 호스트 기입
...
ALLOWED_HOSTS = ['.pythonanywhere.com']
...
# static 파일 한 곳에 모으기
...
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
...
# CMD에
python manage.py collectstatic
베포
# project root을 기준으로 directory 전체를 압축파일로 압축
# https://www.pythonanywhere.com/ 접속
# sign up/ login
# Files 클릭
# 압축한 파일 Upload
# Open Bash console here
# 파일 압축 해제(unzip [file_name]
unzip costaurant.zip
# 해당 서버에 파이썬 가상환경 설치(virtualenv --python=python[파이썬_버전] [가상환경_이름])
virtualenv --python=python3.7 django-envs
# 해당 가상환경으로 들어가서 가상환경 실행
cd django-envs
source bin/activate
# django 설치
pip install django==2.2
# 오른쪽 상단의 메뉴 클릭 후, Web 클릭
# add a new web app 클릭
# Next
# Manual Configuration 클릭
# 해다오디는 파이썬 버전 클릭
# Next 클릭
# Code 부분으로 가서 source code 기입 (/home/[id]/[project_name])
/home/zsu/costaurant
# WSGI 링크 클릭해 수정
# 19~47번째 줄까지 주석처리
# 76~89번째 줄은 주석해제
# 81번쨰 줄 url을 위의 url로 수정
...
path = '/home/zsu/costaurant'
...
# 85번째 줄 [project_name].settings로 수정
os.environ['DJANGO_SETTINGS_MODULE'] = 'costaurant.settings'
# 저장 후, 다시 오른 쪽 상단 메뉴 클릭 후, Web 클릭
# Virtualenv 부분으로 가서 virtualenv 기입 (/home/[id]/[virtualenv_name])
home/zsu/django-envs
# Static files 부분으로 가서 URL 기입
/static/
# Directory 기입(/home/[id]/[project_name]/static)
/home/zsu/costaurant/static
# 완료 후 맨 위로 가서 초록색 버튼의 reload 클릭