me

[python] 파이썬 장고 – 개발 프로그램 서버 이전 방법
2024.12.06 / , ,

개인 컴퓨터에서 개발한 프로그램을 공용 서버에 옮기는데 여러 번 해도 마치 처음처럼 갑자기 생각이 안 날 때가 많아서 작성한 파이썬 장고 – 개발 프로그램 서버 이전 방법 !? 기록해 두려 한다.

파이썬 장고 – 개발 프로그램 서버 이전 방법

목표는 기존에 D:\Develop 경로에서 서버의 C:\Work\D_workplan2 로 옮기려고 한다

경로만 다르고 동일한 프로젝트명이란 제한에서 작성하였다.

1. requirements.txt 파일 만들기

기존 내 컴퓨터에서

pip freeze > requirements.txt

명령어로 requirements.txt 파일을 만들어준다. 해당 파일은 설치된 pip list 파일들이다.


2. 서버에 폴더 및 가상 환경 만들기

가져오는 파이썬 경로가 다르기에 폴더랑 가상 환경은 직접 세팅 해주었다.

C:\Util\Python3116\python.exe -m venv C:\Work\D_Amelia2\vAmelia2

3. 파일 이전

가상 환경 폴더를 뺀 나머지 파일을 기존 파일 압축해서 가져가서 원하는 곳에 압축을 푼다.

여기까진 뭐 특이한 부분은 없고~ 하나 특이한 걸 찾는다면 error.log 파일을 넣고 압축이 안되니 이 아이는 두고 간다~ 정도?


4. DB 생성

내 경우엔 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; 로 내가 만든 데이터 베이스가 있는지 확인~


5. 파이썬 세팅

서버에서 가상 환경 활성화를 해준다

C:\Work\D_Amelia2\vAmelia2\Scripts
activate

그리고 가져왔던 프로그램 리스트 설치

pip install -r requirements.txt

장고 마이그레이션 해주기

python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

6. IIS 세팅

이번에도 서버에서 IIS로 배포할 예정이라 여기서 IIS 세팅해준다.

FaseCGI 설정 해주기

파이썬 장고 - 개발 프로그램 서버 이전 방법 - FastCGI

일단 전체에서 [FastCGI 설정] 메뉴를 들어가 준다.

환경변수

우측에 [애플리케이션 추가]를 눌러서 각 값들을 넣어 준다.

애플리케이션 추가

전체 경로 : C:\Work\D_Amelia2\vAmelia2\Scripts\python.exe

인수: C:\Work\D_Amelia2\vAmelia2\Lib\site-packages\wfastcgi.py

환경 변수 추가 부분

1번 세트

1. 환경변수 Name: DJANGO_SETTINGS_MODULE #대문자

1. 환경변수 Value: back.settings #mysite.setting

2번 세트

2. 환경변수 Name: PYTHONPATH

2. 환경변수 Value: C:\Work\D_Amelia2

3번 세트

3. 환경변수 Name: WSGI_HANDLER

3. 환경변수 Value: django.core.wsgi.get_wsgi_application()

총 3개 환경 변수 추가하면 된다. 보통 에러가 나는 경우 이 값들이 제대로 들어가지 않았을 경우 많이 발생 했다.

환경 변수 Name은 전부 대문자로 기재하고 환경 변수 Value 는 내 프로젝트에 맞게 기재해야 한다.

웹 사이트 처리기 매핑

처리기매핑

이번엔 사이트에 현재 위치를 등록 시킨 후 [처리기 매핑]을 눌러서 값을 넣어준다.

파이썬 장고 - 개발 프로그램 서버 이전 방법 - 모듈 매핑 추가
파이썬 장고 - 개발 프로그램 서버 이전 방법 - 모듈매핑추가2

Django IIS 위한 모듈 매핑 추가 입력 값

요청 경로 : *

모듈: FastCgiModule

실행 파일: C:\Work\D_Amelia2\vAmelia2\Scripts\python.exe|C:\Work\D_Amelia2\vAmelia2\Lib\site-packages\wfastcgi.py

이름: Django_Handler

요청 제한 – 체크 빼고

확인(저장) : 아니요로 저장

위 값 적을 때 실행 파일의 경우 ” | ” 로 구분된 2개의 값을 적어야 하기에 메모장 같은데 적은 후에 복사해서 넣는 게 더 편하다.

Static 가상 환경 추가

IIS로 장고를 연결하면 기본 static 폴더의 js나 css가 적용되지 않은 상태로 보인다. 정상이다.

이제 static 폴더를 등록해주어야 하는데…

파이썬 장고 - 개발 프로그램 서버 이전 방법 - 가상디렉터리추가

등록하고자 하는 가상 환경 폴더 – 내 경우엔 static 폴더에서 우클릭 후 [가상 디렉터리 추가]를 눌러준다.

파이썬 장고 - 개발 프로그램 서버 이전 방법 - 가상 디렉터리추가2

그리고 static 폴더를 등록해 준다.

그 다음에 사진엔 없지만~ 역시나 처리기 매핑 을 해주면 된다.

추가한 사이트에서 [처리기 매핑] 을 눌러서 [정렬된 목록 보기]를 눌러준다.

처리기매핑
staticFile

그러면 가장 하단에 보이는 [StaticFile]을 우측 [위로 이동] 버튼으로 최상단 까지 올려준다.

그러면 CSS까지 적용된 웹 사이트를 볼 수 있다.


파이썬 장고 – 개발 프로그램 서버 이전 방법 – 오류

FastCGI 프로세스가 예기치 않게 종료되었습니다

처음 시도 때 갑자기 저 오류가 떠서 너무 당황 했는데…

이유가 가상 환경까지 그냥 복사해서 써서 그랬다.

가상 환경까지는 세팅 직접하고 그 부분 빼고 가져와서 하니 저 오류가 사라졌다.


FaseCGI : https://learn.microsoft.com/ko-kr/iis/configuration/system.webserver/fastcgi/application/

기타 장고 관련: https://pixiclue.com/tag/django/