ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 설치 및 연동 - Windows
    Python 2018. 11. 13. 20:59

    웹 서버

    웹 서버는 Bitnami wamp를 통해 Apache 웹 서버를 사용할 것이다.





    파이썬 인터프리터



    https://www.python.org/

    위의 링크를 통해 파이썬 홈페이지로 들어가서 다운로즈에 마우스를 가져다대면 다운로드 화면이 나타난다. 

    버튼을 클릭하여 프로그램을 다운로드 받자.





    다운받은 프로그램을 실행하면 설치화면이 나타난다. 


    그림과 같이 반드시 체크사항 두가지에 모두 체크하고 Customize installation을 선택해주자.





    Optional Features에서 모든 체크박스에 체크하고 Next를 누르자.





    Advanced Options에서 다양한 체크박스가 존재하는데 원하는 체크박스를 선택해주자. (가급적 다 선택함...)


    설치 경로를 설정해주고 Install버튼을 클릭하자.





    설치가 완료되면 파이썬 인터프리터는 설치가 완료되었다.





    cmd를 실행시켜 python을 입력하면 정상적으로 설치된 경우 파이썬의 버전정보가 나타난다.






    Apache와 Python을 CGI로 연동하기

    파이썬에 작성한 코드를 웹에서 실행하기 위해 CGI로 연동해보자.




    Apache\conf\httpd.conf 파일을 열어서 mod_cgi를 검색하여 "LoadModule cgi_module modules/mod_cgi.so"를 찾는다.


    해당 구문 맨 앞에 #이 붙어 주석처리가 되어있을텐데 #을 지워 주석처리를 지워준다.





    스크롤을 내리다보면 DocumentRoot에 대한 설정 옵션이 보인다.


    <Directory></Directory> 태그 안에 빨간 박스를 친 내용을 작성해주자.


    1
    2
    3
    4
    <Files "*.py">
        Options ExecCGI
        AddHandler cgi-script .py
    </Files>
    cs

    확장자가 .py라는 파일을 CGI로 실행(Exec)하고 cgi-script로 핸들링한다.





    httpd.cnf를 수정했다면 Bitnami WAMP Stack에서 Apache Web Server를 재시작 한다.





    웹 서버를 재시작했다면 Apache\htdocs하위에 \python\helloWorld폴더를 만들고 helloWorld.py 파일을 생성해준다.


    그리고 생성한 helloWorld.py에 아래의 내용을 작성해준다.


    1
    2
    3
    4
    5
    6
    #!python
    = 3 + 4 + 5
    = a / 3
    "헤더 정보를 전달해준다."
    print("content-type: text/html; charset=utf-8\n")
    print(b)
    cs


    1번 줄 - 해당 언어가 어떠한 언어로 이루어져있는지를 선언해주는 부분이다.

    만약 #!python을 작성하지 않을 경우 웹 브라우저에서 500 이터널 서버 에러를 보게 될 것이다.


    2 ~ 3번 줄 - 테스트를 위해 산수 처리를 해보자.


    5번 줄 - html의 헤더 정보를 작성해준다. 

    만약 content-type과 charset을 작성해주지 않을 경우 브라우저에서 500 이터널 서버 에러가 발생할 것이다.


    6번 줄 - 산수 처리 결과를 화면에 출력한다.





    코드를 작성 후 해당 파일에 브라우저로 접근해보면 웹 페이지로 처리된 내역이 컴파일된 것을 알 수 있다.




    'Python' 카테고리의 다른 글

    문법 - 반복문  (0) 2018.11.15
    문법 - Dictionary  (0) 2018.11.14
    문법 - list  (0) 2018.11.14
    문법 - 조건문  (0) 2018.11.14
    문법 - Boolean  (0) 2018.11.14
Designed by Tistory.