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. DontSettleforless
    주안아빠님대로 해서 해결했씁니다.
    대화보기
    • DontSettleforless
      환경변수 설정을 어디서해요??
      대화보기
      • DontSettleforless
        이고잉님 하는데로 똑같이 따라했는데
        [Sun Jul 15 18:31:26.074640 2018] [cgi:error] [pid 83904:tid 1244] (OS 2)������ ������ ã�� �� �����ϴ�. : [client 127.0.0.1:56009] AH01223: couldn't spawn child process: C:/Bitnami/wampstack-7.1.19-1/apache2/htdocs/hipython.py
        [Sun Jul 15 18:31:26.215008 2018] [cgi:error] [pid 83904:tid 1252] (OS 2)������ ������ ã�� �� �����ϴ�. : [client 127.0.0.1:56010] couldn't create child process: 720002: hipython.py
        이런 오류가 발생합니다..ㅠㅠㅠ 도와주세요ㅠㅠㅠㅠ
      • 한장현
        정말 감사합니다!!
        덕분에 오류 해결했습니다~~
        대화보기
        • 송진영
          잘 봤습니다 감사합니다!
        • 송진영
          겨우겨우 됐네요 감사합니다 ㅎㅎ
        • 동화나라
          주안아빠님 정말 감사합니다ㅠㅠㅠㅠ
        • 설렁탕
          컴퓨터를 다시 껏다 키니깐 잘 되네요 ㅎㅎ
        • 김형균
          주안아빠님 덕분에 문제 해결했습니다 감사합니다
          대화보기
          • SongSong
            cmd 창에 helloworld.py 입력하면 정상적으로 출력됩니다
            하지만 계속 똑같은 에러가 뜹니다 ㅠㅠ
            대화보기
            • SongSong
              생활코딩의 웹에플리케이션 수업 만들기 완강하고 파이썬 입문하러 왔습니다.
              AH01222: don't know how to spawn child process 에러.

              주안아버님 방법도 그대로 해보고,
              밑에 이우현님 방법도 해보고,
              파이썬 지웠다가 다시 깔아보기도하고
              구글에 검색도 해보고있는데...
              지금 3시간째 설치에서 막혀있네요 .. 도와주세요
              설치하느라 시간 계속 잡아먹히네요 진전도 없고
            • 이우현
              python cgi couldn't create child process
              AH01223: couldn't spawn child process

              환경변수 설정에서 시스템 Path에 python.exe 설치되어있는 경로 추가하니까 해결되었습니다.
            • Simon Kim
              근데 아톰 에디터에는 text 라고 제대로 입력 했는데 오류 로그에는 ttext 로 뜬다고 하네요 ㅠ
              대화보기
              • egoing
                ttext 가 오타 같습니다
                대화보기
                • Simon Kim
                  error 로그에 Bad header: Content-Type\ttext/html; charse 이렇게 뜨면서 안됩니다.. 동영상 그대로 따라 했는데 뭐가 문제 일까요 ㅠ
                • 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 자세히 보기