IT 툴툴

[Django파이썬웹프로그래밍] 07 Cloud 서버에 Django 배포하기 - 7.1~7.7

은듄 2021. 11. 27. 09:28
반응형

 

여기까지 온 것 칭찬해~~

이제 배포 갑시다~

 

웹 프로젝트를 다른 사람들에게 오픈할 예정이라면,

 

운영 서버를 준비하고 여러분이 개발한 프로그램을 배포해야 합니다.

 

하지만!!!!

 

클라우드는 개발할 모든 자원들은 제공해주는 SaaS 웹 서비스이니 

애용해 봅시다.

 

종류는 여러가지에요..

 

AWS, Digital Ocean, Heroku, PythonAnywhere 등등,,

 

하지만, 이 책에서는 무료이면서 사용하기도 쉬워서

 

파이썬 개발자들이 많이 사용하는

 

'PythonAnywhere' 사이트를 활용할 것입니다.

 

 


7.1 PythonAnywhere 사이트에 가입하기


 

어서 가입해봅시다~ 먼저 접속 해주시고~

 

https://www.pythonanywhere.com/

 

Host, run, and code Python in the cloud: PythonAnywhere

Batteries included With Python versions 2.7, 3.5, 3.6, 3.7 and 3.8, and all the goodies you normally find in a Python installation, PythonAnywhere is also preconfigured with loads of useful libraries, like NumPy, SciPy, Mechanize, BeautifulSoup, pycrypto,

www.pythonanywhere.com

 

짜잔

 

 

우측 상단, Log in 버튼!

[그림07_01] PythonAnywhere 메인 페이지

 

Login 화면에선 Sign up here

[그림07_02] 로그인 화면

 

Sign up here 화면에선 Sign up here 클릭

 

[그림07_03] Sign up here 화면

 

Sign up here 화면에선 Sign up here 클릭

 

[그림07_04] 계정 생성하기

 

아래는 가입 완료는 아니구요.. 중간에 Warning 으로 이메일 컨펌 해줘야 됩니다ㅜ..

[그림07_05] 계정 생성 후 접속화면 아직은 미완료

 

 

메일로 접속하셔서 컨펌 하시면 완료!

[그림07_06] 완료 화면

 


7.2 장고 소스 가져오기


그 동안 실습한 프로젝트 폴더를 압축한다.

[그림07_07] 프로젝트 폴더 압축

 

Pythonanywhere 내 프로젝트 폴더 만들기

[그림07_08] Pythonanywhere 내 프로젝트 폴더 만들기

 

클라우드 내 플젝 폴더로 파일 올리기

 

[그림07_09] 클라우드 내 플젝 폴더로 파일 올리기

 


7.3 리눅스 명령으로 압축 풀기


아래와 같이 Consoles > Bash 누르기

 

 

[그림07_10] 배포준비

 

잠시 기다렸다가 아래와 같이 명령어 수행

 

# 위치 확인
pwd

# 하위 폴더/파일 확인
ls -al

# 하위 폴더 들어가기
cd 폴더명

# 압축파일 풀기
unzip 파일명

 

 

[그림07_11] 배포준비2

 


7.4 가상 환경 만들기


가상 환경을 구성하여 배포한다.

 

# 가상 환경 디렉토리 VENV 만들고, 이동하기
cd (가상 환경 구성 디렉토리)
mkdir VENV
cd VENV

# python 3.6 을 사용하는 가상 환경 DUNN_Proj_env_v3 을 만든다( 이름 변경 가능)
virtualenv --python python3.6 DUNN_Proj_env_v3

# DUNN_Proj_env_v3 가상 환경 안으로 진입한다.
source (가상 환경 구성 디렉토리)/VENV/DUNN_Proj_env_v3/bin/activate

# 가상 환경 내에서 python 버젼 확인
python -V

# 가상 환경에서 나오기
deactivate

아래는 수행 결과 화면이다.

[그림07_12] 가상 환경 구성 결과 화면

 

다음 장고를 설치해보자

 

# 가상 환경 안으로 진입한다.
source (가상 환경 구성 디렉토리)/VENV/DUNN_Proj_env_v3/bin/activate

# --가상 환경---
# django 2.0 버전 설치
pip install Django==2.0

# 가상 환경 내 설치된 패키지 리스트를 확인
pip list

[그림07_13] 장고 설치 화면

 


7.5 PythonAnywhere 서버에서 장고 설정 변경하기


PythonAnywhere 에서 배포하기 위한 설정을 해보자.

 

# 가상 환경 안으로 진입한다.
source (가상 환경 구성 디렉토리)/VENV/DUNN_Proj_env_v3/bin/activate

# --가상 환경---

cd /home/(프로젝트디렉토리)/	# settings.py 파일 위치로 이동
vi settings.py



---------------- 파일 안에서 아래 내용 변경 후 저장하기-------------------
(i 누르기)
...
ALLOWED_HOSTS = ['(가입시이름)/pythonanywhere.com', 'localhost', '127.0.0.1'] # 변경

...

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'www_dir', 'static')	# 추가

...

(:wq 로 저장후 나오기)
--------------------------------------------------------------------------

python manage.py collectstatic

 


7.6 PythonAnywhere 웹 서버 설정하기


PythonAnywhere 서버 HW에도 웹서버가 실행되고 있다.

 

이 웹서버가 장고 프로그램을 인식할 수 있도록 웹 서버의 설정을 변경해야 한다.

 

Web > Add a new web app > Next

 

[그림07_14] PythonAnywhere Web 화면이다.

 

다음 Manual Configuration (including virtualenvs) 선택

[그림07_15] 웹 서버 설정하기1

다음 따라서 Python 3.6 선택

[그림07_16] 웹 서버 설정하기2
[그림07_16] 웹 서버 설정하기3
[그림07_17] 웹 서버 설정하기4

 

[그림07_18] 웹 서버 설정하기5

 

import os
import sys

# 플프롲프로젝프로젝틍프로젝트의 뤁루트 딜디렉디렉톨디렉토릴디렉토리를 짖지정지정합지정합닏지정합니다.

path = '/home/dunn/DUNN_TEST_PROJ/211127/dunn_211127_v01'	# 상황에 맞춰 수정
if path not in sys.path:
    sys.path.append(path)
    
    
os.environ['DJANGO_SETTINGS_MODULE'] = 'kej_test.settings'	# 상황에 맞춰 수정

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

 

 

 

 

 

 

하지만, 이 책에서는 무료이면서 사용하기

반응형