티스토리 뷰

728x90

이제 Flask를 통해 어느정도 화면개발이 완료되어 로컬 개발 서버가 아닌

실제 서버로 소스를 이관하고 서비스를 해보려 했습니다.

 

현재 가용한 서버가 windows서버밖에 없어 iis를 통해 서비스를 해보려 합니다.

iis는 아파치와 같이 웹서버 역할을 해주는 Mircosoft에서 개발한 cgi 서비스 입니다.

 

처음에는 만만해 보였으나 거의 2주를 넘게 삽질을 했기 때문에 중요한 핵심포인트 들을 포스팅합니다.

이대로 따라만 하시면 Flask, Django도 iis를 통해 웹서비스 하실 수 있습니다.

 

 

1) wfastcgi 설치와 복사 그리고 지원하는 python 버전 확인 ---> 중요

wfastcig는 pip install wfastcgi를 통해 가장 최신버전의 라이브러리를 설치합니다.

그런데 이것보다도 더 중요한 것이 있습니다. 바로 python의 버전입니다. 현재 python은 3.10 까지 출시가 되었으나,

제가 확인해본바 wfastcgi는 3.8.3 까지 지원을 합니다.

만약 이후 버전인 3.9 / 3.10에서 개발 중이라면 이를 바꾸어 주셔야 합니다.

 

pip install wfastcgi 하시면 라이브러리 폴더에 wfastcgi.py 파일이 생기는데 이 폴더를 실제 소스가 있는 폴더로 복사를 해줍니다. 저의 개발 소스가 담겨있는 최 상위 폴더는 projects/myproject38f인데 이곳에 wfastcgi.py 파일을 복사,붙여넣기 합니다. (아래 폴더를 보시면 파일이 보이시죠??)

 

 

2) 권한설정 ---> 진짜 중요

두번째로 중요한것이 IIS_IUSRS 라는 계정과 IUSR이라는 계정을 추가하셔서 '수정'권한을 허용합니다.

한마디로 iis에서 사용하는 계정이 해당폴더에 접근이 가능해야 합니다. 

(소스폴더, 파이썬 설치 폴더 두 폴더 모두 권한을 부여해야 합니다)

 

나중에 알게 된 사실이지만, 해당 폴더에 접근 권한이 없으면, 익스플로러로 접속시 500에러가 발생하게 되는 것이었습니다.

 

더 중요한 포인트 한가지!!

소스의 경로인 c:\projects 에 권한을 추가해주고,

하나더 있습니다. 바로 python이 설치된 폴더의 경로에도 이 계정에 대한 권한을 추가해줍니다.

제 python 경로는 C:\Users\etern\AppData\Local\Programs\Python\Python38 여서 이 폴더에 마찬가지로 IIS_IUSRS와 IUSR 계정을 추가하 주었습니다.

 

 

 

3) iis 설정

이제 거의 70프로가 끝났습니다. iis 에서 몇가지 설정을 해주시면 됩니다.

중요한 것은 아래 순서대로 진행하셔야 합니다.

 

 [1] 사이트 추가 후 실제 소스 파일이 있는 경로 입력

 [2] 모듈매핑 추가 및 설정

모델 경로 : *

모듈 : FastCgiModule

실행파일옵션 : C:\Users\etern\AppData\Local\Programs\Python\Python38\python.exe|c:\projects\myproject38f\wfastcgi.py

이름: fastcgihandler

 

제일 중요한 것은 실행파일 옵션입니다.

python이 설치된경로의 python.exe로 잡아주시고 | 로 이전에 wfastcgi.py를 복사한 경로를 하나 더 넣어줍니다.

 

[3] fastCGI 설정

위 단계까지 완성하셨다면 iis 맨 최상단의 LAPTOP 어쩌구를 클릭하시면 FastCGI를 설정하실 수 있는 메뉴가 나옵니다.

이를 편집하셔서 환경변수 부분을 누르시면 아래와 같이 PYTHONPATH와 WSGI_HANDLER를 추가해줍니다.

 

PYTHONPATH

--> c:\projects\myproject38f (실제 소스가 있는 폴더 최상위 경로)

 

WSGI_HANDLER

--> app.app (소스가 있는 폴더의 app.py의 app을 호출한다는 의미)

 

app.py는 아래와 같이 작성하였습니다.

from pybo import create_app
app = create_app()

 

 

[서비스 확인]

이렇게 설정하시고 localhost:7000 하시면 첫 화면을 보실 수가 있습니다!

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함