Python

Python Django 프로젝트 IIS 설정

Fastlane 2024. 9. 30. 10:38
728x90
반응형

Django 프로젝트를 IIS서버를 통해 접속할 수 있도록 설정해보자. 

 

기본 프로젝트와 가상환경 설정은 아래 포스트 참조

VSCode] 윈도우 환경에서 Python, Django 개발환경 세팅 (tistory.com)

 

 

1. IIS, CGI 설치

 

브라우저를 열고 http://localhost 에 접속해보자. 

기본 IIS page를 확인할 수 있다.

 

2. python 가상환경에 wfastcgi 설치

IIS가 request를 Django로 전달할 수 있도록 wfastcgi를 설치한다. 

가상환경 활성화 된 상태에서 wfastcgi를 설치한다. 

(DjangoFirstAppVenv) PS C:\Project\DjangoFirstApp>pip install wfastcgi

 

3. IIS에서 FastCGI 설정

FastCGI 설정 > 애플리케이션 추가

전체경로 : C:\Project\DjangoFirstApp\DjangoFirstAppVenv\Scripts\python.exe

인수 : C:\Project\DjangoFirstApp\DjangoFirstAppVenv\Lib\site-packages\wfastcgi.py

환경변수: 

  Name : WSGI_HANDLER, Value : django.core.wsgi.get_wsgi_application()
  Name : PYTHONPATH, Value : C:\Project\DjangoFirstApp\myproject
  Name : DJANGO_SETTINGS_MODULE, Value : myproject.settings

 

4. IIS에 사이트 추가 

사이트 > 웹 사이트 추가 

사이트이름 : DjangoFirstApp

실제 경로 : C:\Project\DjangoFirstApp\myproject

포트 : 81

 

추가된 DjangoFirstApp 사이트에 FastCGI handler 매피ㅣㅇ

DjangoFirstApp 홈 > 처리기 매핑 > 모듈 매핑 추가 

요청 경로 : *

모듈 : FastCgiModule

실행 파일(옵션) : C:\Project\DjangoFirstApp\DjangoFirstAppVenv\Scripts\python.exe|C:\Project\DjangoFirstApp\DjangoFirstAppVenv\Lib\site-packages\wfastcgi.py

이름 : DjangoFirstAppHandler

확인 후 뜨는 prompt에서 아니오 선택

 

5. 사이트 실행 확인

http://localhost:81 정상접속 확인

 

6. Static Files 설정

Django 프로젝트 생성 시, 기본으로 포함된 admin 경로를 접속해보면 화면이 이상하게 보인다. 

 

IIS는 Django 앱의 static files 경로를 모르기 때문에 로딩하지 못한다. 

C:\Project\DjangoFirstApp\myproject\myproject\settings.py

settings.py 파일에 STATIC_ROOT를 추가한다.

STATIC_URL = 'static/'
STATIC_ROOT = 'static/'

 

C:\Project\DjangoFirstApp\myproject\myproject\urls.py

urls.py 코드를 아래와 같이 수정한다. 

from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

 

앱 내에 위치한 static files를 한곳에 모으기 위해 아래 명령어를 실행한다. 

(DjangoFirstAppVenv) PS C:\Project\DjangoFirstApp\myproject> python manage.py collectstatic            

127 static files copied to 'C:\Project\DjangoFirstApp\myproject\static'.

해당 경로에 static files이 복사되었다. 

 

브라우저 새로고침하면 static files가 정상 로드된 것을 확인할 수 있다. 

 

728x90
반응형