[Django] pythonanywhere.com에 프로젝트 배포(Deploy) 과정
파이썬 + 장고로 개발된 프로젝트를 배포하기 위해서는 다음 과정을 거친다.
프로젝트 구조는 다음과 같다고 가정한다.
1. settings.py 편집
○ 개발을 위해 설정한 "DEBUG" 옵션을 False로 지정한다.
○ BASE_DIR : 프로젝트 기본경로를 설정한다
○ STATIC_ROOT 설정
○ 웹사이트 접근가능 호스트 설정
myhost는 pythonanywhere.com 가입한 계정으로
myhost.pythonanywhere.com 계정을 사용할 수 있다.
○ DATABASE 엔진 및 파일 설정
배포용으로 하지 않으면 나중에 static 파일들을 수집(collect)하는 과정에서 오류가 발생한다.
> python manage.py collectstatic
○ STATIC_URL, STATIC_ROOT 설정
2. pythonanywhere.com 사이트에 계정 등록
(이미 등록되었으면 안해도 됨)
pythonanywhere.com : 장고 파이썬 프로젝트 배포시 번거로운 설정을 최소화 시켜주고 쉽개 배포할 수 있게 해 주는 서비스로 회원가입시 mysite.pythonanywhere.com 도메인이 자동으로 부여되고, 이 도메인을 이용해 웹프로젝트를 배포해 볼 수 있다.
Files로 이동
3. 파일 업로드를 위해 프로젝트 전체 파일 압축
4. "Upload a file" 버튼을 이용해 압축한 "fc_community.zip" 파일업로드
5. Upload한 압축파일 해제.
상단의 "Open Bash console here" 링크 클릭하면 bash console 창이 열린다.
이 창은 Unix/linux bash 콘솔창과 동일하다.
pythonanywhere.com에 가입한 계정별로 홈 경로가 지정되며 mysite인 경우의 홈 경로는
/home/mysite 가 홈 경로가 된다.
홈경로에 프로젝트를 직접 해제 하면 홈디렉토리에 메인 웹프로젝트가 설정 되므로 프로젝트 경로를 미리 만들어 놓고 해당 경로에 압축을 해제 하도록 한다
이 디렉토리를 웹 파일 관리자에서 만들수도 있으며, 압축된 프로젝트 파일을 새로 생성한 프로젝트 경로에 직접 업로드할 수도 있다.
홈 경로에 업로드한 압축파일 "fc_community.zip" 파일이 있다면,
> mkdir fc_community
> mv fc_community.zip ./fc_community
위와 같이 하여 fc_community 경로로 압축파일을 옮겨 놓고 다음과 같이 압축 해제 한다.
> cd fc_community
~ fc_community>unzip fc_community.zip
위와 같이 명령을 실행 하면 모든 파일이 압축 해제 된다.
6. 가상머신(Virtual Machine) 생성 / 활성화 / 장고(Django) 설치
pythonanywhere에는 이미 가상머신을 사용할 수 있도록 세팅 되어 있어서 해당 프로젝트를 위한 가상머신을 생성후, 가상머신을 활성화 시키고, 프로젝트에서 사용할 장고(Django)를 설치한다.
7. 프로젝트에서 사용된 static 파일 수집
프로젝트에서 사용된 라이브러리, CSS등 원격이 아닌 로컬에서 호출될 수 있도록 종속된 static 파일들을 "static" 경로로 수집한다.
예를 들어 부트스트랩 "bootstrap.min.css" Style Sheet 파일 및 장고가 기본으로 제공하는 admin 정보파일들
위와 같이 버전의 차이로 인해 python 명령으로 Syntax 오류가 발생하면 "python3" 로 실행한다.
8. 데이터베이스 모델 정보 마이그레이션
이미 마이그레이션된 DB(sqlite3) 정보를 포함해서 올렸으면 안해도 된다.
9. pythonanywhere에 웹 프로젝트 생성
1) pythonanywhere 메인 메뉴바에서 "Web"을 클릭
2) "Add a new web app" 클릭
3) "Manual configuration" 클릭
4) "Python version 선택(Python 3.7)
5) 최종 생성된 사이트
10. pythonanywhere 웹 프로젝트 상세설정
11. wsgi 설정(웹서버 기본설정)
1) WSGI configuration file "/var/www/mysite_pythonanywhere_com_wsgl.py"
> 파일 웹편집기가 열림
2) 편집
기본 값 비활성 (영역 선택 후 Ctrl+'/' --> 주석 처리)
장고 영역 활성화 및 프로젝트에 따른 경로정보 수정
11. 배포완료 : 서비스테스트 : http://mysite.pythonanywhere.com
'프로그래밍 > Python' 카테고리의 다른 글
[DJango] HTML Temlate파일에 {{}} 내에 HTML Tag 그대로 살리기 (0) | 2021.04.19 |
---|---|
[Django] Form에서 입력받은 ','로 구분된 문자열 파싱 하기 (0) | 2021.01.04 |
[Django] 게시판 페이지 네비게이션(page navigation) (0) | 2021.01.04 |
[Django] -Start-Code : 게시판 만들기 (0) | 2021.01.03 |
[Django] Template HTML 상속 (block - extends) (0) | 2021.01.03 |