me

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

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

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

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

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

1. requirements.txt 파일 만들기

기존 내 컴퓨터에서

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip freeze > requirements.txt
pip freeze > requirements.txt
pip freeze > requirements.txt

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


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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
C:\Util\Python3116\python.exe -m venv C:\Work\D_Amelia2\vAmelia2
C:\Util\Python3116\python.exe -m venv C:\Work\D_Amelia2\vAmelia2
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)) 프로그램을 켜서

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
show databases;
show databases;
show databases;

해주면 아직 안 만들었으니 당연히 옮길 데이터베이스가 없다.

CREATE DATABASE your_database_name 명령어로 DB를 만들어 준다

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE DATABASE amelia2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE amelia2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE amelia2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

생성 후 꼭 show databases; 로 내가 만든 데이터 베이스가 있는지 확인~


5. 파이썬 세팅

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
C:\Work\D_Amelia2\vAmelia2\Scripts
activate
C:\Work\D_Amelia2\vAmelia2\Scripts activate
C:\Work\D_Amelia2\vAmelia2\Scripts
activate

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip install -r requirements.txt
pip install -r requirements.txt
pip install -r requirements.txt

장고 마이그레이션 해주기

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py makemigrations python manage.py migrate python manage.py createsuperuser
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/