1.
Heroku 가입
2.
Heroku CLI 설치
https://devcenter.heroku.com/articles/heroku-cli 에서 pc 환경에 맞는 거 다운로드, 설치
... 설치 확인 위해 Git Bash 앱 실행 → heroku 했을 때 목록 나오면 ok
3.
환경 변수 적용
Debug 다음 값으로 바꿈(settings.py 에 코드 넣음)
DEBUG = (os.environ.get('DEBUG', 'True') != 'False')
Python
복사
맨 아래 AWS_ACCESS_KEY_ID 와 AWS_SECRET_ACCESS_KEY 도 다음 과 같이 바꿈
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
Python
복사
4.
.gitignore 파일 적용
requirements.txt랑 같은 곳에 .gitignore 파일 생성(없으면)
gitignore 사이트에 django 검색해서 나온 코드를 복사하여 붙여 넣음
5.
Heroku 용 파일 작성
•
위와 같은 곳에 Procfile 파일 생성
web: gunicorn 프로젝트명.wsgi --log-file -
•
위와 같은 곳에 runtime.txt 파일 생성
python-3.9.2
한 줄만 넣음 → 자신의 python 버전에 따라 넣음
6.
필요한 Dependency 설치
위에서 봤던 gunicorn 설치, whitenoise 는 static 파일 관리해주는 프로그램, heroku 에서 데이터베이스를 주소 형식으로 줄 때 변경?하나로 해주는 dj-database-url, heroku 의 데이터베이스인 포스트클래스쿄엘? 에 접속할 수 있도록 만들어주는 psycopg2-binary 패키지
터미널에 pip install gunicorn whitenoise dj-database-url psycopg2-binary 넣음
7.
settings.py 수정
•
whitenoise 가 장고에서 작동하기 위한 코드
settings.py 의 MIDDLEWARE 에서 SecurityMiddleware 있는 코드 아래에 다음 코드 추가
'whitenoise.middleware.WhiteNoiseMiddleware',
Python
복사
•
ALLOWED_HOSTS 수정
[] 안에 '*' 넣음
→ 모든 주소에서 접근 허용
보안상 안 좋을 수도 있지만 장고에서 관리하기보다는 웹서버 프로그램이 관리하는게 편함
•
DB 관련 코드 수정
맨 아래에 다음 코드 작성
import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
Python
복사
import 가 위로 올라갈 수도 있음
pip freeze > requirements.txt
git 에 수정된 파일들 추가 (터미널)
•
git add -A
•
git commit -m "add files for deploying to heroku"
(영상에서는 git commit -m "for heroku")
git 문제 해결
git config --global core.autocrlf true → true 를 false 로
heroku 문제 해결
•
echo $PATH
/c/Program\ Files/Heroku/bin/heroku login
PATH="$PATH:/c/Program Files/Heroku/bin"
•
git init
git add .
git commit -m "for heroku" ... 다시
•
git branch -M main
git push origin main
Heroku 관련 명령어 실행 (터미널)
•
heroku login
창 뜨면 로그인 버튼 누름
•
heroku create
나의 앱이 배포될 주소 뜸
•
git push heroku main
빌드 과정 보여줌
오류나면 requirements.txt 에서 해당 오류나는 줄 삭제하고 git add 부터 다시 입력
collectstatic 안해도 heroku 에서 직접 해줌
heroku 에 배포하기 전에 만들어 둔 장고 앱 heroku 가 압축
마지막에 뜨는 링크 들어갔을 때 does not exist 오류 뜨는거 정상
•
•
Username, Email, Password 작성
•
heroku open
크롬 창에서 열어줌
Heroku 에서 환경 변수 설정
•
heroku.com 에서 열었던 페이지 주소 항목에 들어가서 Settings - Reveal Config Vars 누름
DEBUG ... False
AWS_ACCESS_KEY_ID ... AKIAVXMCPHDL3FP7V5AK
AWS_SECRET_ACCESS_KEY ... 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
add
=⇒ 다하고 나서 페이지 새로고침, 주소창에 /a 와 같이 없는 페이지로 들어가면 노란 오류 페이지가 아니라 Not Found 뜸
gunicorn 이란?
→ 서버를 몇 개를 돌릴지, 서버 프로세스를 몇 개를 할지, 동시 접속 몇 명까지 할지 결정 가능
→ 성능, 속도 기반으로 돌림
→ 보안성
→ uwsgi(usgi?) 나 gunicorn 주로 사용 ... heroku 에서 gunicorn 사용 권장
왜 내용 다 사라진겨? 아몰랑,,,ㅋㅋ큐ㅠㅠㅠ