프로그래밍/Python

파이썬 CGI

꿈꾸는 사람_Anthony 2020. 10. 7. 18:52
반응형

CGI는 Common Gatewaay Interface의 약자로, 본인은 파이썬 코드를 APACHE웹서버에서 실행시키고자 사용하였다.

 

CGI를 사용하는 방법에는 다양한 방법이 있다.

그 중 본인은 DIRECTORY에 추가하는 것을 선택하였다.

 

1. httpd.conf 설정

APACHE서버 설정파일인 httpd.conf파일을 보다보면 DocumentRoot가 있다.

 

이것은 이 웹서버의 기본 경로이다.(리눅스 파일시스템으로는 /에 해당한다.)

이 아래 <Directory "c:/Apache24/htdocs">와 이해하지 못할 내용들이 있다.

여기에 다음을 추가한다.

<Files "*.py">

      Options +ExecCGI

      AddHandler cgi-script .py

</Files>

의미: .py로 끝나는 모든 파일은 cgi처리해라

 

그리고

LoadModule cgi_module modules/mod_cgi.so의 주석(#)을 해제한다.

httpd.conf수정이 완료되었다.

 

CMD에서 httpd -k restart (환경변수 설정 필요)

을 통해 서버를 재시작하자.

 

이제 실행시키고 싶은 파이썬 파일의 수정방법이다.

 

2. 실행하고자 하는 Python파일 수정

#!python.exe경로

파이썬 코드의 첫줄은 무조건 위 명령(?)문장으로 시작해야한다.

 

이때 매우 주의해야할것은, 그냥 python.exe 파일만 떼다가 설치된 폴더가 아닌 다른 폴더에

넣고 경로를 지정해주면,

End of script output before headers: 에러가 난다. (이거 때문에 3시간을 삽질했다.)

위 문장의 예시는

#!C:\python3\python.exe

가 적당할 듯하다.

 

# 주의 : python을 설치한 경로 중 한글이 있는 경우

파이썬을 설치한 경로가

C:\python3\python.exe

위 예시처럼 영어와 숫자로만 이루어지지 않고,

 

경로에 한글이 포함되어

C:\한글\python\python.exe

와 같다면 에러가 발생한다.

# 해결책

앞서 설정을 수정했던 httpd.conf에 마지막줄에

AddDefaultCharset UTF-8

을 추가한다. 끝이다. 이러면 에러가 없다.

 

그리고 파이썬 같은 경우에는 cgi로 웹서버 처럼 동작할 수 있게해주는 cgi모듈이 있다.

그것은 공식사이트에서 사용법을 알아보도록하자.

docs.python.org/2/library/cgi.html

그리고 print("헤더")는 필수이다!!

 

에러 보는곳: apache24\logs error

 

참고 : 세션 접속 은 logsaccess.log에서 확인한다.

반응형