[Django] 배포

1 minute read


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 클릭