WEB2 - Python

설치 및 연동 - Linux & Codeanywhere

수업소개

이 수업에서는 온라인을 통해서 실습을 진행할 수 있는 codeanywhere.com 의 사용법과 Python, Apache를 연동해서 Python 웹애플리케이션을 구동하는 방법을 살펴봅니다. 

 

웹서버 준비

 

 

Python 설치와 실행방법

 

 

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

nano 에디터로 Apache 웹서버가 동작하는 방법을 변경하기 위해서 설정 파일을 편집합니다. 

sudo nano /etc/apache2/sites-enabled/000-default.conf

 

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

<VirtualHost *:80 *:3000>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/cabox/workspace
        <Directory /home/cabox/workspace>
                AddHandler cgi-script .py
                Options ExecCGI
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

cgi가 동작하도록 cgi 기능을 켭니다. 

sudo a2enmod cgi

 

웹서버를 재시작합니다. 

sudo service apache2 restart

 

python script를 작성합니다. 

helloworld.py

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

 

python 파일이 웹서버에 의해서 실행되도록 실행권한을 허용합니다. 

sudo chmod a+x helloworld.py

 

접속합니다. 

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

http://web2-python-egoing690448.codeanyapp.com/helloworld.py

 

오류가 발생하면 오류 메시지를 확인해봅니다. 

sudo tail -f /var/log/apache2/error.log

댓글

댓글 본문
작성자
비밀번호
  1. alpha
    해결하셧을지는 모르겠지만 회원가입시 사용한 아이디로 메일이가는데 거기서 verify your account.를 클릭하시면됩니다.
    대화보기
    • alpha
      codeanywhere 이 켜진상태로 두시간이 지나면 꺼집니다.
      무료이용자는 하루에 두시간밖에 킬수없다고하네요. 켜놓고 다른일을 하고오면 안될것같네요
    • aaronkim
      코드애니웨어 설치는 됐는데 로그인을 해서 HTML을 선택 하고 Creat를 누르면
      You can not use the Container feature until you verify your account.
      Please go to your dashboard.

      이렇게 뜨면서 되질 않네요 .. dashboard에 들어 가서 upgrade를 하고 해도 안되고 어떻게 해야 하나요 ㅠㅠ 알려주세요
    • Seankim
      여기까지 ㅇㅇ
    • 잘풀리는인생
      리눅스 환경은
      vmware + mint linux 19 tara
      apache2
      python3
      다 install 된 상태 입니다..
    • 잘풀리는인생
      설정은 apache2 conf 설정 다 하고
      sudo a2enmod cgi 다해주고..
      sudo chmod a+x cgi_env.py 실행 파일 다 해주고 했는데도 안됨..
      벌써 몇시간째 ㅠㅠ..
    • 잘풀리는인생
      #!/usr/bin/python3
      print("Content-Type: text/html")
      print()
      import cgi
      cgi.test()
      -------------> 이거 실행 하면 밑에 처럼 에러 나는 이유 뭔가요?
      구글링 찾아도 안나오네요...

      SyntaxError: unexpected character after line continuation character
      에러 원문...
      [Sun Nov 18 23:39:51.995309 2018] [cgi:error] [pid 4280] [client 127.0.0.1:50746] AH01215: SyntaxError: unexpected character after line continuation character: /var/www/html/cgi_env.py
    • Sang Tae Stephen Lee
      이렇게 어려운내용을 이렇게쉽게 설명해주시다니...
    • Aaron Soon Woo Kwon
      완료입니다~
    • 송문숙
      감사합니다.
      도움이 많이 됩니다.
    • Byoung Nam Soh
      nano설치 후, 강의를 쫒아하다가 sudo nano /etc/apache2/sites-enabled/000-default.conf를 하지 않고
      sudo nano에서 길을 잃어헤메 다가 다시 따라해서 성공... 감사합니다 :)
    • 호눅스
      이번 강의 정말 꿀잼이었어요!
    • terminal에서는 py가 실행가능한데 제 이메일로 지정된 URL로 py file 실행 시
      'this container is currently unaccessible.'이라는 메세지가 뜨네요
      컨테이너는 작동중 상태입니다. 로컬호스트인 127.0.0.1에서만 응답할 경우 외부 컨테이너에서는 이용가능하지
      않으며 0.0.0.0에서 응답 및 접속이 안되네요.
      로컬 호스트 변경 방법을 확인 결과 anywhere에 terminal에서
      "rails s -binding=0.0.0.0"을 실행하라고 하는데 명령어가 없다고 나와서 config로 진입해서 바꾸려고 하는데
      방법이 상세히 나와있지 않네요. 관련 사항은 아래와 같습니다.

      "Running on Localhost
      Some of our stacks will default the IP to the localhost: 127.0.0.1. You have to change the default IP so your Container could run externally. Please change IP address on your container from 127.0.0.1 to 0.0.0.0 so that you could be able to preview your Ruby box. You can do that inside Config - under commands - of your container (right click on your container and select Config).

      For example, on Ruby stack, you just have to use the following command in order to run your Rails container: "rails s --binding=0.0.0.0" This will override localhost (127.0.0.1) where your app can't work. And now, you'll be able to view your Ruby app on: preview.xxxxxx.box.codeanywhere.com:3000."
    • PassionOfStudy
      " 시작이 반이다~! "

      2018-03-27 - 1일차_두번째 수강완료!

      codeanywhere 정말 편리하네요.

      codeanywhere는 클라우드컴퓨팅환경을 제공하는 건가요?
    • 마샤
      엄청 길게 느껴졌지만 끝낸만큼 성취감이 더 크네요:)
    • 조영만
      nano에서 막혀서 vi 로 했네요. nano가 생소해서..ㅎㅎ;
    • Dongsik Shin
      귀에 쏙쏙 들어 오네요
    • Rhys Jung
      리눅스를 사용해보지 않아 내용이 어렵네요
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기