apache2와 함께 Python을 어떻게 사용합니까?


13

Python을 Apache와 함께 작동 시키려고하지만 CGI 또는 mod_python으로 성공하지 못했습니다.

누구나 좋은 튜토리얼이나 무언가를 알고 있습니까?

감사.

답변:


17

mod_python기본적으로 유지 관리되지 않습니다 mod_wsgi. 패키지를 설치 한 libapache2-mod-wsgi다음 sudo a2enmod wsgi활성화하여 실행하십시오.

실행하기위한 빠른 예와 같이 다음과 같은 내용을 작성하십시오 /etc/apache2/sites-enabled/default.

WSGIScriptAlias /test /path/to/python/file.py

그리고 파일에서 /path/to/python/file.py:

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return "Hello World"

Apache2를 다시 시작 /test하면 application()python 파일에서 모든 요청 이 호출 됩니다.

자세한 내용은 Python이 웹 서버와 통합 되는 방식 인 WSGI (WebServer Gateway Interface)를 참조 하십시오 .

보너스 / 업데이트 :

파이썬은 (의외로) 테스트를 위해 표준 라이브러리에 작은 WSGI 서버를 가지고 있습니다. 파일의 맨 아래에 이것을 추가하면 테스트 목적으로 이전 실행 파일로 파일을 실행 한 다음 Apache가 프로덕션을 대신 할 수 있습니다.

if __name__ == '__main__':
    from wsgiref.simple_server import make_server

    httpd = make_server('', 8080, application)
    print "Serving on http://localhost:8080"

    httpd.serve_forever()

아파치 로그에서 다음과 같은 오류가 발생했습니다. 내가 알 수있는 한, 그것은 문자열을 얻지 못한다고 생각합니다.
Vallery

[Sat Mar 05 17:06:14 2011] [오류] [client 127.0.0.1] mod_wsgi (pid = 2844) : WSGI 스크립트 '/var/www/file.py'를 처리하는 중에 예외가 발생했습니다. [토요일 3 월 5 일 17:06:14 2011] [오류] [클라이언트 127.0.0.1] 역 추적 (최근 호출 마지막 시간) : [토요일 3 월 05 일 17:06:14 2011] [오류] [클라이언트 127.0.0.1] 파일 " /var/www/file.py ", 2 행, 응용 프로그램 [2011 년 3 월 05 일 17:06:14] [오류] [클라이언트 127.0.0.1] start_response (200, [( 'Content-Type', 'text / plain ')]) [Sat Mar 05 17:06:14 2011] [오류] [client 127.0.0.1] TypeError : 상태에 대한 예상 바이트 문자열 객체, int 유형의 값을 찾았습니다
Vallery

아 내 잘못이야. 나는 나를 위해 모든 까다로운 일을하는 프레임 워크에 익숙합니다.). 나는 업데이트되었습니다 200'200 OK'python.org/dev/peps/pep-0333
모르 텐 Siebuhr에게

훌륭합니다. 마지막 질문 : HTML로 표시하려면 어떻게합니까? 내 브라우저는 마크 업을 무시하고 일반 텍스트로 리턴을 표시합니다.
Vallery

1
기다리십시오. text / plain을 text / html로 변경하십시오.
Vallery
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.