개인 컴퓨터에서 개발한 프로그램을 공용 서버에 옮기는데 여러 번 해도 마치 처음처럼 갑자기 생각이 안 날 때가 많아서 작성한 파이썬 장고 – 개발 프로그램 서버 이전 방법 !? 기록해 두려 한다.
목표는 기존에 D:\Develop 경로에서 서버의 C:\Work\D_workplan2 로 옮기려고 한다
경로만 다르고 동일한 프로젝트명이란 제한에서 작성하였다.
기존 내 컴퓨터에서
pip freeze > requirements.txt
명령어로 requirements.txt 파일을 만들어준다. 해당 파일은 설치된 pip list 파일들이다.
가져오는 파이썬 경로가 다르기에 폴더랑 가상 환경은 직접 세팅 해주었다.
C:\Util\Python3116\python.exe -m venv C:\Work\D_Amelia2\vAmelia2
가상 환경 폴더를 뺀 나머지 파일을 기존 파일 압축해서 가져가서 원하는 곳에 압축을 푼다.
여기까진 뭐 특이한 부분은 없고~ 하나 특이한 걸 찾는다면 error.log 파일을 넣고 압축이 안되니 이 아이는 두고 간다~ 정도?
내 경우엔 maria DB로 되어 있어서 서버에 있는 MySQL Client (MariaDB 11.3 (x64)) 프로그램을 켜서
show databases;
해주면 아직 안 만들었으니 당연히 옮길 데이터베이스가 없다.
CREATE DATABASE your_database_name 명령어로 DB를 만들어 준다
CREATE DATABASE amelia2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
생성 후 꼭 show databases; 로 내가 만든 데이터 베이스가 있는지 확인~
서버에서 가상 환경 활성화를 해준다
C:\Work\D_Amelia2\vAmelia2\Scripts activate
그리고 가져왔던 프로그램 리스트 설치
pip install -r requirements.txt
장고 마이그레이션 해주기
python manage.py makemigrations python manage.py migrate python manage.py createsuperuser
이번에도 서버에서 IIS로 배포할 예정이라 여기서 IIS 세팅해준다.
일단 전체에서 [FastCGI 설정] 메뉴를 들어가 준다.
우측에 [애플리케이션 추가]를 눌러서 각 값들을 넣어 준다.
애플리케이션 추가
전체 경로 : C:\Work\D_Amelia2\vAmelia2\Scripts\python.exe
인수: C:\Work\D_Amelia2\vAmelia2\Lib\site-packages\wfastcgi.py
환경 변수 추가 부분
1. 환경변수 Name: DJANGO_SETTINGS_MODULE #대문자
1. 환경변수 Value: back.settings #mysite.setting
2. 환경변수 Name: PYTHONPATH
2. 환경변수 Value: C:\Work\D_Amelia2
3. 환경변수 Name: WSGI_HANDLER
3. 환경변수 Value: django.core.wsgi.get_wsgi_application()
총 3개 환경 변수 추가하면 된다. 보통 에러가 나는 경우 이 값들이 제대로 들어가지 않았을 경우 많이 발생 했다.
환경 변수 Name은 전부 대문자로 기재하고 환경 변수 Value 는 내 프로젝트에 맞게 기재해야 한다.
이번엔 사이트에 현재 위치를 등록 시킨 후 [처리기 매핑]을 눌러서 값을 넣어준다.
Django IIS 위한 모듈 매핑 추가 입력 값
요청 경로 : *
모듈: FastCgiModule
실행 파일: C:\Work\D_Amelia2\vAmelia2\Scripts\python.exe|C:\Work\D_Amelia2\vAmelia2\Lib\site-packages\wfastcgi.py
이름: Django_Handler
요청 제한 – 체크 빼고
확인(저장) : 아니요로 저장
위 값 적을 때 실행 파일의 경우 ” | ” 로 구분된 2개의 값을 적어야 하기에 메모장 같은데 적은 후에 복사해서 넣는 게 더 편하다.
IIS로 장고를 연결하면 기본 static 폴더의 js나 css가 적용되지 않은 상태로 보인다. 정상이다.
이제 static 폴더를 등록해주어야 하는데…
등록하고자 하는 가상 환경 폴더 – 내 경우엔 static 폴더에서 우클릭 후 [가상 디렉터리 추가]를 눌러준다.
그리고 static 폴더를 등록해 준다.
그 다음에 사진엔 없지만~ 역시나 처리기 매핑 을 해주면 된다.
추가한 사이트에서 [처리기 매핑] 을 눌러서 [정렬된 목록 보기]를 눌러준다.
그러면 가장 하단에 보이는 [StaticFile]을 우측 [위로 이동] 버튼으로 최상단 까지 올려준다.
그러면 CSS까지 적용된 웹 사이트를 볼 수 있다.
처음 시도 때 갑자기 저 오류가 떠서 너무 당황 했는데…
이유가 가상 환경까지 그냥 복사해서 써서 그랬다.
가상 환경까지는 세팅 직접하고 그 부분 빼고 가져와서 하니 저 오류가 사라졌다.
FaseCGI : https://learn.microsoft.com/ko-kr/iis/configuration/system.webserver/fastcgi/application/
기타 장고 관련: https://pixiclue.com/tag/django/