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. 황보람
    감사합니다!!!!ㅠㅠ^^
    대화보기
    • jiyeong
      2020.08.31.새벽한시에 끝냄. (백업해둔 파일에 작성을 해놔서 찾느라 애먹음 .. )
    • 탱크빵야
      <AH01223: couldn't spawn child process: C:/Bitnami/wampstack-7.3.10-0/apache2/htdocs/helloworld.py 에러가 나시는 분들은 참조해보세요.>

      밑에 @Baemaek 님 글 참고하세요~
    • 김민규
      [Thu Aug 06 10:01:30.897037 2020] [cgi:error] [pid 1240:tid 1116] [client 127.0.0.1:5298] End of script output before headers: helloworld.py, referer: http://127.0.0.1/
      이 오류는 어떻게 해야할까요 ㅠ 밑에 있는 해결책 다 해봤는데 안되요 ㅠ
    • 장정민
      즐코~즐코~
    • 모다피
      예전에도 생활코딩에서 파이썬 공부할 때 맨 처음 단계인 이게 안돼서 더 공부를 못했습니다..운영자님이 보신다면 알려주시면 정말 감사하겠습니다 진짜 포기하고싶지 않은데 주변에 알려줄 사람이 없어요
      대화보기
      • 모다피
        에러를 지웠는데도 아무것도 뜨지 않습니다. 에러에 아무 문자도 없어요..어떻게 해결해야 할까요?
        대화보기
        • 모다피
          http://127.0.0.1.......py 에서 4.0이 안나오고

          #!python
          a = 3+4+5
          b = a/3
          print("content-type: text/html;charset=utf-8\n")
          print(b)

          이거 그대로 나옵니다. 하라는대로 다 했는데...이거 어떻게 해결할까요? 끝까지 오류 없이 다 했는데 안나오니까 너무 답답해요.....포기하고 싶지 않은데 아시는 분 댓글 부탁드립니다..
        • 200725
        • 20/07/06 시작:)
        • 니이내이
          2020/07/01
          (이전까지 정상적으로 진행)
          두줄 가량의 error log 확인후 helloworld.py first line에 #!python을 적어줌

          문제 시작
          다시 reload했지만 파이참 에디터상의 error.log파일에 물음표가 생기면서 에러 로그 보는것 자체가 불가능해짐.
          물론 print("content-type: text/html; charset=utf-8\n") 결과도 안뜸.

          수정사항

          - 시스템변수 PATH 수정 (from 생활코딩 https://bit.ly/3eK5jPg)
          : 내컴퓨터 - 속성 - 고급시스템설정 - 환경변수 - 시스템 변수 - Path변수값중 %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\에 ;C:\Program Files (x86)\Python38-32\을 추가해준다.

          - helloworld.py의 first line을 #!python에서 #!C:\Program Files (x86)\Python38-32\python.exe으로 바꿔주었다.

          - apache server stopped 문제 (from https://bit.ly/3dKTU0j)
          C:\Bitnami\wampstack-7.4.7-0\apache2\conf 디렉토리의 httpd 파일을 열어 SetEnv PATH "C:\Bitnami\wampstack-7.4.7-0/apache2/bin;${PATH}"라고 적힌 부분 앞에 #을 붙여준다. 관리자 권한으로 cmd를 켠뒤 cd \를해서 C:로 이동후 cd C:\Bitnami\wampstack-7.4.7-0\apache2\bin로 이동을 한다. 이후 httpd.exe -k install을 치면 됨. 설치돼있으면 httpd.exe -k start을 클릭하면됨. 이제 apache stop후 restart하면됨.

          -여전히 error.log는 안열린다. apache server도 stopped이다가 running이다가 알수가없다...
          -물론 4.0은 정상출력되고, cmd상의 문구도 정상적으로 출력된다. 일단 넘어가자.
        • 개발개발개발
          64비트 설치해도 되나요??
        • psyless
          20200606
        • newbieno1
          error.log 에 에러가 뜨지 않는 경우에는 어떻게 해결할 수 있을까요..?
        • marinelamp
          오....감사합니다.
          엄청 해매고 있었는데...
          진심으로 감사드립니다 ㅠㅠ
          대화보기
          • eddylee123456
            완료
          • 감사합니다. 파이썬 입문하였습니다 :)
          • 생초보
            파이썬이랑 비트나미 하나도 남김없이 싹 지우고 다시깔아서 실행하니까 되네요..ㅠㅠ 뭐가 문제였던건지는 모르겠지만 된다는데 의의를 두려합니다 찝찝한 이 기분..
            대화보기
            • 생초보
              그대로 실행했는데 에러도 안뜨고 값이 바뀌지도 않고 html코드가 그대로 나오는데 어떻게 해야할까요... 퇴근 후 코딩공부가 취미인데 여기에 막혀서 헤매다가 두시간자고 출근하게 생겼습니다...고수님들 도와주세요...
            • 별짱
              python 설치 경로를 시스템 환경 변수 바꾸고 재부팅하니 됩니다..
            • 와 오래 걸렸지만 넘 뿌듯하네요ㅠㅠ
            • 위처럼 파일 맨 위에 #!python 을 입력하려면
              시스템 환경변수를 설정해줘야 합니다.
              https://opentutorials.org......610
              이걸 따라서 환경변수를 설정해주고, 컴퓨터 재부팅해주시면 해결됩니당.
              저도 처음엔 안됐는데 재부팅하니까 바로 되네요
            • 클리퍼
              에러나고 않되서

              helloworld.py 파일 첫번째 줄에
              #!python 대신에 python.exe 파일이 있는 설치 경로로 수정하니 실행되네요..

              #!C:\Users\user\AppData\Local\Programs\Python\Python38-32\python.exe

              도와 주신 분들 감사합니다
            • 악어
              휴우 됐네요.. PATH도 잡고 python 전체경로도 넣고 안되다가 컴 다시 켜니까 됐네요
              감사합니다~
            • 브링스
              python 전체경로를 입력하면 되는데,,
              PATH 잡고는 왜 안될까요,,, PATH잡고 성공하신 분들은 바로 정상적으로 되셨나요,,,?
            • 스티븐잡숴
              완료
            • 워나
              한국말은 끝까지 듣고, 영상은 끝까지 봐야하는데.. 잃어버린 내 30분.. 뭐야 돌려줘요..
              윈도우10 VScode기준 작성
              #!(python설치경로[.exe까지 작성]) //(), []빼고 입력

              a = 3+4+5
              b = a/3
              print ("content-type: text/html; charset=utf-8\n")

              print(b)
            • 문수영
              저도 아래 에러로 고생을 했는데 python 설치 경로를 시스템 환경 변수에 추가하였더니 해결되었네요, 감사합니다. '[Sun Feb 16 17:41:10.029071 2020] [cgi:error] [pid 6512:tid 1224] (OS 2)지정된 파일을 찾을 수 없습니다. : [client ::1:52905] AH01223: couldn't spawn child process: C:/Bitnami/wampstack-7.3.13-0/apache2/htdocs/helloworld.py' '
            • Semjid Bolooj
              완성 너무 감사합니다
            • iamm00n
              웹쪽은 전혀 몰라 헤매고 있었는데, 큰도움이 되었습니다. 정말 감사합니다.
            • 기쁘다 #! 뒤 python 이 아닌 실제 python이 있는 위치 주소를 복사해서 붙여넣으니 4.0이 나왔네요 댓글로 해결법 써주신 많은 분들 너무 감사합니다. 순간 포기하려다 찾아보니 이런 행운이.. 집단지성 화이팅입니다. 파이썬도 화이팅해서 정진하겠습니다!!
            • dj bak
              감사합니다!!!
              대화보기
              • dj bak
                항상 좋은강의 감사드립니다 제작자분들!

                그리고 Baemaek님 덕에 오류해결.. 감사합니다:)
              • 칩과데일
                진짜 오래걸리긴했는데 무사히 이상없이 완료했습니다. 감사합니다.
              • ㅁㄴㅇㄹ
                그냥 아예 안되요 ,에러도 안떠요 그냥 소스코드만 보이지 cgi 안보여요
                참고로 코드 똑같이 다 따라했어요
              • ㅁㄴㅇㄹ
                그래도 안되는데요?;;
              • apldeap
                12/22
              • 제발요..
                혹시 파이참이랑 아파치톰캣도 연동가능할까요?
              • 쭈니니
                감사합니다. 복받으세요.ㅠㅠ
                대화보기
                • couldn't create child process 이 에러
                  #!python 말고 실제 본인 컴퓨터에 python.exe 있는 위치
                  #!C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32 여기에 +\python.exe 해서 해결했어요.
                • 성취감
                  눈물흘릴뻔했습니다. 너무 기뻐서
                • 쑤우
                  수강완료. 감사합니다~
                • 굼벵이
                  완료
                • Baemaek
                  AH01223: couldn't spawn child process: C:/Bitnami/wampstack-7.3.10-0/apache2/htdocs/helloworld.py 에러가 나시는 분들은 참조해보세요.

                  경로를 찾지 못하는 것은 !#python 부분에 python 대신 python이 설치된 경로를 입력해주면 됩니다.

                  python 경로 찾는법: windows key 누르시고 python 입력하시면 python 3.7 (App)이 뜰텐데,
                  오른쪽 눌러서 file location 가셔서 해당 파일 속성을 보세요.

                  데이터 타입이 .exe 라면 그냥 그 경로를 복사하셔서 #! 뒤에 붙여주시면 되지만,

                  대부분의 Shortcut일 경우가 많으실텐데요. 오른쪽 클릭하셔서 속성 > Shortcut 탭을 보시면 Location이 나와있습니다. 복사하셔서 !# 뒤에 붙여주세요.

                  example)
                  #!C:\Users\myname\AppData\Local\Programs\Python\Python37\python.exe
                  a = 3 + 4 + 5
                  b = a/3
                  print("content-type: text/html; charset=utf-8\n")
                  print(b)

                  저장 후 브라우저 새로고침
                • 김광민
                  AH01223 에러 해결
                  해결방안1 : 파이썬 재설치 ->helloworld.py폴더 내용중 해당 부분 수정 #!python -> 올경로/python.exe로 변경
                  해결방안2 : 환경변수 Path에 파이썬 실행파일 등록
                • 전준용
                  Document root를 수정하였으나, 동영상처럼 에러도 뜨지않고 html 파일로만 반환하는 경우가 있습니다.
                  이경우 Options ExecCGI 중간에 +를 추가하세요.
                  아래와 같습니다.

                  <Files "*.py">
                  Options +ExecCGI
                  AddHandler cgi-script .py
                  </Files>
                • 동동
                  어후 별짓 다했더니 드디어 됫당
                • 이경석
                  감사합니다.
                  덕분에 해결책을 찾았네요.
                  저 역시 경로를 계속 못찾고 있어서 강제로 넣었더니 되긴 했습니다.
                  다만 추후 새로운 파일을 생성할 때마다 위에 경로를 계속 지정해줘야 하는 불편함이 있을 것 같다는 예상이 되네요. 근본적인 해결방안을 다른분께서 제시해 주시길 바래봅니다.

                  다시 한 번 감사드립니다.
                  대화보기
                  • Leo Kim
                    비트나미 지우고 다시 깔고 난리치니까 되네요......
                  • 에듀케이티드키드
                    하 5시간만에됬네...
                  버전 관리
                  egoing
                  현재 버전
                  선택 버전
                  graphittie 자세히 보기