파이썬 CGI
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
참고 : 세션 접속 은 logs에access.log에서 확인한다.