기본 세팅
우선 필요한 패키지를 배포할 때도 설치해줘야 하기 때문에, 미리 패키지를 모아놓는 것이 좋다
작업하던 폴더의 최상단 위치에서 아래 명령어를 터미널에 입력해준다
그러면 requirements.txt가 폴더의 최상단 위치에 생성될 것이다
pip freeze > requirements.txt
또한, settings.py에서 ALLOWED_HOSTS를 전체로 설정하여 어떤 호스트 URL이든 접근할 수 있도록 허용해준다
(프로젝트 URL만 접근할 수 있도록 허용하고 싶으면, 프로젝트 URL 생성 후 해당 URL만 입력하면 된다)
# 호스트 URL 전체 허용
ALLOWED_HOSTS = ['*']
# 프로젝트 URL만 하용
ALLOWED_HOSTS = ['프로젝트 URL']
다음으로, 개발한 코드들을 Github에 업로드 해놓아야 한다.
Git은 설치되어 있고 Github 계정은 있다는 전제하에, 아래 명령어를 통해 Github에 코드들을 업로드해준다
자세한 것은 구글링 해보면 금방 찾을 수 있을 것이다
git add .
git commit -m "메세지"
git push origin master
PythonAnywhere 회원가입 및 로그인
PythonAnywhere은 Python으로 개발된 어플리케이션을 무료로 호스팅할 수 있는 사이트다. 물론, 더 나은 기능을 위해서는 유료 결제를 진행하거나 AWS 같은 전문적인 서비스를 이용하는 것이 낫겠지만, 빠르게 배포만 해보고 싶다면 PythonAnywhere도 나쁘지 않은 선택이라 생각한다
본 내용은 Python으로 이루어진 Django 어플리케이션을 배포하는 것이기에 PythonAnywhere가 호스팅 사이트로 적합하다고 판단했다
우선 아래 사이트에서 회원가입 및 로그인을 진행하면 된다.
회원가입을 할 때, 무료버전에서는 Username이 URL의 앞부분이 되기 때문에 유의하여 작성하기를 바란다
ex. https://(username).pythonanywhere.com
Github에서 프로젝트 불러오기
PythonAnywhere 홈페이지에 로그인이 됐다면, 상단 탭에 Consoles를 클릭한다
그 후, 왼쪽에 Bash를 클릭해준다
다음으로, 아래 명령어를 입력하여 Github에서 프로젝트를 불러온다
# 맨 처음에 프로젝트를 불러올 때
git clone "Github 주소"
# 코드가 수정이 되고 나서 변경사항 반영할 때
git pull origin master
가상환경 설치 및 실행
가상환경 설치/실행을 통해 사전에 모아놨던 패키지를 설치한다
# 가상환경 설치
virtualenv --python=[로컬에서 사용하던 Python 버전] [가상환경 폴더 이름]
# 가상환경 실행: Bash console을 열었을 때 가상환경이 꺼져 있으면 매번 실행해줘야 한다
source [가상환경 폴더 이름]/bin/activate
# 프로젝트 폴더로 이동: (master) 표시가 떠야함
cd [Github 레포 이름]
# 패키지 설치: Django, Pillow 등
pip install -r requirements.txt
DB 생성
# manage.py가 있는 폴더로 이동
cd community_proj
# 모델 생성
python manage.py makemigrations
# DB 연동
python manage.py migrate
관리자 계정 생성
# 관리자 계정 생성: 비밀번호는 최소 8자 이상 추천
python manage.py createsuperuser
static 파일 모음폴더 생성
# static 파일 모음폴더 생성
python manage.py collectstatic
Web app 생성
Bash console을 닫고 상단의 Web 탭을 클릭하여, Web app을 생성한다
생성시 Web framework를 Manual configuration으로 설정한다
본인이 사용한 Python 버전을 클릭하면
프로젝트 URL이 생성된다
새로운 개발 수정사항을 Web에 반영하고 싶을 때마다 아래 초록 버튼을 눌러주면 된다
또한, 사이트가 휴면상태에 빠지게 하고 싶지 않다면 아래 노랑 버튼을 3개월마다 눌러줘야 한다
Web app 설정
아래로 스크롤을 내리면 Code 섹션이 있다
여기에서 Source code의 디렉토리를 manage.py가 있는 디렉토리로 수정해주면 된다
어디에 있는지 잘 모르겠으면 상단의 Files탭에 가서 폴더 구조를 확인한 뒤 작성해주면 된다
다음으로 WSGI configuration file의 링크를 클릭하여, DJANGO 파트의 코드 주석을 풀어준다
주의할 점은 path를 manage.py가 있는 디렉토리 주소로, settings 경로는 path 디렉토리 아래에 있는 settings.py의 디렉토리 주소로 작성해주면 된다
스크롤을 더 내리면 Virtualenv 섹션이 있다
가상환경 이름을 주소에 맞게 입력해준다
마지막으로 스크롤을 내리면 Static files 섹션이 있다
URL은 /static/으로, Directory는 staticfiles가 있는 주소로 작성하면 된다
마무리
모든 배포 과정이 끝났고, 배포된 URL은 다음과 같다
이외에 코드 수정 사항이 있으면 다음과 같은 순서로 진행하면 된다
- 코드 수정 후 Github에 업로드
- PythonAnywhere의 Bash Console에 들어가서 코드 불러오기: git pull origin master
- 추가적인 static 파일이 있다면 static 파일 모으기 실행: python manage.py collectstatic - Web 탭에서 초록 버튼을 눌러 웹사이트 reload
출처
'Django' 카테고리의 다른 글
Django로 커뮤니티 사이트 만들기 (6): Heroku + AWS S3 배포 (0) | 2023.09.19 |
---|---|
Django로 커뮤니티 사이트 만들기 (4): CRUD(Update, Delete) (0) | 2023.09.18 |
Django로 커뮤니티 사이트 만들기 (3): 회원가입/로그인/로그아웃 (0) | 2023.09.18 |
Django로 커뮤니티 사이트 만들기 (2): CRUD(Create, Read), 댓글 (0) | 2023.09.17 |
Django로 커뮤니티 사이트 만들기 (1): 세팅 (0) | 2023.09.17 |