장고/배포(서버 nginx 도커)

장고걸스 : 파이썬 애니웨어 첫 배포[2022.7]

나도초딩 2022. 9. 10.

http://jamukha.pythonanywhere.com/

 

Django Girls blog

2022년 7월 25일 10:24 오후 검색어 입력 Need help? Talk to us! 들어가며 설치하기 설치하기 (chromebook) 인터넷은 어떻게 작동할까요 Command Line 시작하기 Python 설치하기 코드 에디터 Python 시작하기 Django란

jamukha.pythonanywhere.com

소회

 

배포가 이렇게 어려울 줄 몰랐다. php 방식들처럼 ftp 로 올리고 땡일 줄 알았는데,

대부분의 입문 책들이 aws 나 기타 서비스를 기준으로 해설하는 이유가 있었다.

그냥 그렇게 따라하면 됐는데, 리눅스 홈서버와 나스를 운용하고 있어서 어떻게든 독자 배포를 목적으로 했는데, 상당히 많이 고전했다. ㅠㅠ

 

텍스트로 계속 이해를 못했던 부분은 구니콘 , uWsgi 같은 미들웨어였다. 그냥 대충되지 이런게 왜 있어가지고. -_-;; 아후.

게다가, apache 와 nginx 에서의 설정이 또 약간 달라서, 경우의 수가 네가지가 됐다.

거기에 하나 더, 처음 장고를 학습했던 책은 도커를 통한 배포가 메인이였다. 계속해서 실패하고, 스트레스만 받았었다.

사실 이게 참 멍청한 행동인게, 하나씩 차분하게 하면 될껄. 그냥 같은 방법으로 어디 얻어걸려라 식으로 접근했기 때문이다. ㅠ

그러던 차에 빠르게 복붙식으로 하던, 장고걸 튜토리얼에서 파이썬 애니웨어로 첫 배포를 성공했다.

그 후, 마음의 평정을 찾아서, 여러 조건에서 모두 성공할 수 있게 됐다. 비록 구닥다리 예제지만, 장고걸 튜토리얼 자체 방식에 굉장히 감명 받았다. 리스펙! 

 

summary

  • 파이썬 애니웨어에서 manual 로 python 버전 선택
  • 깃허브 토큰으로 로그인 후, git clone
  • 터미널에서 가상환경 세팅 후 파이썬애니웨어에서 venv 경로 선택
    (( 장고 버전 지정 설치. migrate, createsuperuser, runserver 까지 ))
  • settings.py 에 ALLOWED_HOSTS = ['localhost', '127.0.0.1',  '.pythonanywhere.com'] 지정
  • 파이썬 애니웨어에서 WSGI 설정
    ** 파이썬애니웨어 계정/프로젝트 명시.
    ** settings.py 가 있는 디렉토리 명시. ( ex. config , mysite 등 )

장고를 웹서버에 올리는 것. 소위 '배포'를 해보는데,

아 생각보다 어려웠다.

몇 년 전에 생활코딩 python 강의에서 apache 에 .py 를 인식시키셔 하는 cgi 방식으로는 해봤는데 말이다.

https://volvootofinans.com/ko/run-python-as-a-cgi-script.html

이런 전통적인 방식도 쓸모가 있긴 하겠지? -_-;;; 글쎄 잘 모르겠다...

 

 

 

사전 설정 settings.py Allowed_HOSTS = [] 를 변경!

debug 를 false 로 하고, allowed_hosts 에 고정 ip 하는 거였는데, ... 흠 여기에선 바로, 포트 8000 생략하고, 도메인으로

ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']

 

DEBUG = True

# ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']

파이썬 애니웨어 터미널 창에서, git clone 수행하려 하면, id 와 password 를 입력해야 한다.

그런데, 비밀번호 기본설정이 token 으로 바껴서, github 에서 token 을 발급받은 후,

터미널창에서 password를 물을 때, 붙여넣어야 한다.

( 여기서 잠깐 포기할 뻔..... ㅠㅠ 복사 후, Shift + Insert 키로 붙여넣기 )

1. git 허브 add push 후,

파이썬 터미널에서 https://tutorial.djangogirls.org/ko/deploy/

git clone https://github.com/아이디/my-first-blog.git

 

.gitignore

*.pyc
*~
__pycache__
myvenv
db.sqlite3
/static
.DS_Store

2. PythonAnywhere에서 가상환경(virtualenv) 생성

virtualenv --python=python3.6 myvenv
source myvenv/bin/activate
pip install django~=2.0

python manage.py migrate
python manage.py createsuperuser

3. Pythonanywhere 에서 Virtualenv 경로 선택

4. Pythonanywhere 에서 WSGI 파일 설정

import os
import sys

path = '/home/파이썬애니웨어 계정/my-first-blog'  # PythonAnywhere 계정으로 바꾸세요.
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = '컨피그(settings.py있는 디렉토리).settings'

from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler
application = StaticFilesHandler(get_wsgi_application())
 

'장고 > 배포(서버 nginx 도커)' 카테고리의 다른 글

2021.5 장고 학습 실패 기록  (0) 2022.09.10
Doit장고 학습 기록(2022.8)  (0) 2022.09.10
점프투장고(2022.8.14-8.21)  (0) 2022.09.10

댓글