WEB2 - Python

설치 및 연동 - Windows

수업소개

이 수업에서는 윈도우즈에서 Python, Apache를 연동해 웹애플리케이션을 구동하는 방법을 살펴봅니다. 

 

 

웹서버 설치

 

 

Python 설치 및 실행

 

 

Apache와 Python을 CGI로 연동하는 방법

아파치의 환경설정 파일을 수정합니다. 필자는 아래의 위치에 파일이 있습니다. 

C:/Bitnami/wampstack-7.1.15-0/apache2/conf/httpd.conf

 

Document root(웹서버가 요청한 파일을 찾는 최상위 디렉토리)에 있는 파일 중 확장자가 py인 파일은 Python으로서 실행 되도록 합니다. 추가한 내용은 5~8행입니다. 

<Directory "C:/Bitnami/wampstack-7.1.15-0/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    <Files "*.py">
      Options ExecCGI
      AddHandler cgi-script .py
    </Files>
</Directory>

 

mod_cgi 혹은 mod_cgid 기능을 활성화해야 합니다. httpd.conf에서 아래 행이 아래와 같이 #으로 시작한다면 #을 제거해주세요.

#LoadModule cgi_module modules/mod_cgi.so

 

웹서버를 재시작합니다. 

 

python script를 작성합니다. 

/htdocs/helloworld.py

#!python
print("content-type:text/html; charset=UTF-8\n")
print(1+1)

 

접속합니다. 

필자의 경우는 아래 주소였습니다. 자신의 주소에 접속하시면 됩니다. 

http://127.0.0.1/helloworld.py

 

오류가 발생하면 아래 경로에서 오류 메시지를 확인해봅니다. 

C:/Bitnami/wampstack-7.1.15-0/apache2/logs/error.log

 

댓글

댓글 본문
작성자
비밀번호
  1. 이우현
    python cgi couldn't create child process
    AH01223: couldn't spawn child process

    환경변수 설정에서 시스템 Path에 python.exe 설치되어있는 경로 추가하니까 해결되었습니다.
  2. Simon Kim
    근데 아톰 에디터에는 text 라고 제대로 입력 했는데 오류 로그에는 ttext 로 뜬다고 하네요 ㅠ
    대화보기
    • egoing
      ttext 가 오타 같습니다
      대화보기
      • Simon Kim
        error 로그에 Bad header: Content-Type\ttext/html; charse 이렇게 뜨면서 안됩니다.. 동영상 그대로 따라 했는데 뭐가 문제 일까요 ㅠ
      • cobo
        Starting 64 worker threads.
        에러가 뜨네요...ㅠㅠ
      • 유재준
        저도 주안아버님.. JK 님 글을 읽고. 다시 설치 및 설정해서 끝냈습니다.
        1. C 드라이브 아니면,, 경로 다 넣어야 하고.
        2. C 드라이브에 자동설치 하신분들은 수동설치 하셔서 드라이브를 User 말고, Program 밑으로 설정하시면
        잘 됩니다. ^^/
      • Avatar
        저 해낸것같습니다!!

        <Files "*.py">
        Options ExecCGI
        AddHandler cgi-script .py
        </Files>

        이 코드 작성하실때 ExecCGI 앞에 +를 붙여보시겠어요?

        <Files "*.py">
        Options +ExecCGI
        AddHandler cgi-script .py
        </Files>

        이렇게 작성하면 되는것 같아요.
        <Directory>태그 안에 Options가 이미 사용되어있는데
        또다른 태그를 작성해서 Options를 한번더 추가하려면 +를 붙여야하는것같습니다.

        그러면 #!python으로도 작동됩니다.
      • 필군
        저도 파이썬을 생각없이 깔아놔서 Appdata 쪽으로 들어가서 그쪽 주소 입력하닌깐 맞게 됩니다.
      • 인형사51
        저두 안되서 고민하다가 HY님 글보구 해결했습니다...감사합니다.
        대화보기
        • 좋은 강의 감사합니다
          저도 @주안아빠<-님과 같은 오류가 발생해서
          같은 방법으로 해결했습니다.
          환경 :window, vscode

          #!D:\Program Files\Python\Python36-32\python.exe
          저는 C:\에있어서
          경로 확인후 적어넣으니까 되더라구요
          혹시 다른분들도
          python cgi couldn't create child process
          AH01223: couldn't spawn child process
          같은 오류 발생시 @주안아빠 댓글 참고하셔서 실제경로로 수정해보세요
        • 1. Apache Server가 stop된 것은 httpd 에서 <Files "*.py"> 부터 쭉하시다가 아마도 </Files>로 닫지 않아 에러가 발생되서 Restart되지 않았을 것 같습니다.(저도 마지막부분을 처음에는 빼먹어 restart가 되지 안았었습니다.)
          2. 기존에 설치하신 Python을 uninstall하신후 새버전 64비트로 python-3.6.5-amd64.exe을 다시 설치하세요(64비트 OS사용자). 32비트는 python-3.6.5.exe
          저도 여러버전이 깔려있어서 똑같이 했는데도 화일을 못찾거나, Child process를 생성할 수 없다는 에러가 계속되었는데 Python을 새로 설치하고는 정상적으로 4.0 이 출력됩니다.
          helloworld.py는 동영상 그대로 아래와 같이해서 htdocs 에 저장.
          #!python
          a = 3+4+5
          b = a/3
          print("content-type: text/html; charset=utf-8\n")
          print(b)
        • 헤일리
          저도 Bitnami WAMP 재설치로 Apache서버가 실행되지 않다가(Server not running)
          이 블로그 글을 보고 방금 해결했습니다..

          선생님께서도 해결하셨으면 좋겠다는 마음에서 공유드립니다.
          http://yuilovestomato.tistory.com......y=0
          대화보기
          • 논곰
            한번에 됐어요 ㅠㅠㅠ..선생님 최고에요
          • 이중배
            아래댓글로 해결했어요
            경로 다입력해서요
            대화보기
            • 이중배
              안녕하세요 열심히 배우고 있습니다...감사합니다.
              질문이 있습니다.

              에러 로그에

              [Wed Apr 04 19:41:40.887549 2018] [cgi:error] [pid 5460:tid 908] (OS 2)지정된 파일을 찾을 수 없습니다. : [client 127.0.0.1:55973] couldn't create child process: 720002: helloworld.py
              [Wed Apr 04 19:41:40.887549 2018] [cgi:error] [pid 5460:tid 908] (OS 2)지정된 파일을 찾을 수 없습니다. : [client 127.0.0.1:55973] AH01223: couldn't spawn child process: C:/Bitnami/wampstack-7.1.15-0/apache2/htdocs/helloworld.py

              이런 에러가 있어 진행이 안되고 있어요

              도와주세요
            • Chunho Kim
              문의합니다 아래와 같이 error message 발생시 조치방법은 무엇인지요

              AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name
              AH00354: Child: Starting 64 worker threads.
            • chichaha
              저도 아파치가 계속 stopped 되네요.. 왜 그런걸까요?
              에러코드는 아래와 같습니다. 조언 부탁드립니다.

              Starting Apache Web Server...
              Exit code: 1
              Stdout:

              Stderr:
              Unknown error starting apache
              Starting Apache Web Server...
              Exit code: 1
              Stdout:
            • PassionOfStudy
              2018-03-27 - 1일차_세번째 수강완료!


              리눅스환경에서 배운 내용과 동일하네요 ^_^
            • skyglove
              안녕하세요.
              수업 감사합니다.
              127.0.0.1\helloworld.py 하면 화면에 에러 메시지도 안 뜨고 그냥 백지 상태라 f12 누르고 보니 404에러가 순간 뜨고 사라지더라구요.
              127.0.0.1:82/helloworld.py로 하면 4.0으로 나오는데 이렇게 해도 되는건가요?
              그리고 bitnami wamp를 wampstack-7.1.15-0와 wampstack-7.2.3-0 두 가지가 깔려있습니다. 둘 다 깔려있어도 상관없을까요? wampstack-7.1.15-0를 삭제하려고 해도 현재 pc에서는 이 앱을 실행할 수 없습니다라는 에러가 떠서 삭제가 안 됩니다. 그냥 두고 가도 될지요?
              고맙습니다!
            • egoing
              이럴 땐 너무 고민 마시고 아래 대안으로 전환해보셔요~ https://opentutorials.org......790
              대화보기
              • 최문경
                restart 누르니까 Apache Web Server의 Status 가 Stopped 로 되네요 Start를 눌러도 Running 으로 안바뀌는데
                어떻게 하죠....
              • Froggy
                돌아서면 까먹어서 반복 학습이 필요하네요~
              • 열공하자
                저도 동일한 증상입니다
              • 주안아빠
                어느 위치에서나 cmd 창에서 python을 치면 잘 실행됩니다.
                대화보기
                • 저도 주안아빠님 처럼 풀 경로를 넣어야 오류가 뜨지 않습니다.
                  대화보기
                  • egoing
                    python을 cmd에서 실행할 때 python이나 python3 명령어만으로 실행이 되시나요? 이 경우도 D:\Program Files\Python\Python36-32\python.exe를 사용해야 하는지요?
                    대화보기
                    • 주안아빠
                      안녕하세요. 여러 좋은 강좌 너무 감사드립니다.
                      위 강의대로 따라 했더니 저같은경우 아래 에러가 발생해서
                      couldn't create child process

                      구글링을 해보니 py 파일내 #!python 대신 실제 python이 깔린 경로를 넣어주라 하여 아래와 같이 넣어주었더니 실행이 되었습니다.
                      #!D:\Program Files\Python\Python36-32\python.exe

                      command line 이곳저곳에서 python이 실행되는것 보니 path 는 제대로 되어 있는것 같은데 위 full 경로로 매번 py 파일에 넣어주어야 하는지 모르겠습니다. 조언 부탁드립니다.
                      감사합니다.
                    버전 관리
                    egoing
                    현재 버전
                    선택 버전
                    graphittie 자세히 보기