문제

Windows Vista/ Apache에서 실행하려면 간단한 Python "Hello World"웹 페이지 스크립트를 얻고 싶지만 다른 벽을 쳤습니다. WAMP를 사용하고 있습니다. 설치했습니다 mod_python 그리고 모듈이 표시되지만, 예를 들어 http.conf에서해야 할 일이 확실하지 않습니다 (addhandler mod_python .py와 같은 것들은 찾을 수없는 파일 또는 금지 된 파일로 가져 오거나 모듈을 찾을 수 없습니다. 접근 http : //localhost/myfolder/index.py). 나는 얻을 수있다 mod_python.publisher 일하지만 이것을 원한다/ 이것/ 이것을 필요로합니까?

누구든지 도울 수 있습니까?

감사!

도움이 되었습니까?

해결책

멀리 떨어져 있습니다 mod_python. 일반적인 오해의 소지가있는 아이디어 중 하나는 그 것입니다 mod_python 처럼 mod_php, 그러나 파이썬의 경우. 그것은 사실이 아닙니다. WSGI Python Web Applications를 실행하는 표준입니다. PEP 333. 그래서 사용하십시오 mod_wsgi 대신에.

또는 서버가있는 일부 웹 프레임 워크를 사용하십시오. 체리하나는 미묘합니다. 독립형 및 mod_wsgi.

Cherrypy를 사용한 Hello World 응용 프로그램의 예 :

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

application = HelloWorld()
if __name__ == '__main__':
    cherrypy.engine.start()
    cherrypy.engine.block()

아주 쉬운 응? 이 응용 프로그램을 Python에서 직접 실행하면 웹 서버가 시작됩니다. 구성 mod_wsgi 그것으로 아파치 내부로 달려갑니다.

다른 팁

웹에서 Python 코드를 실행하기 위해 mod_python이 필요하지 않으므로 간단한 CGI 프로그래밍을 사용하여 다음 링크의 지침과 함께 Python 코드를 실행할 수 있습니다. http://www.imladris.com/scripts/pythonforwindows.html

이를 통해 CGI를 사용하여 Python을 활성화하는 데 필요한 구성 옵션을 제공해야하며 Google 검색을 통해 프로그래밍 방법 등에 대한 다른 정보를 제공해야합니다.

mod_python은 약간 더 "친숙한"인터페이스를 원하거나 요청 자체에 대한 더 많은 제어를 원한다면 유용합니다. 이를 사용하여 Apache 서버의 요청 필터 및 기타 사항을 만들 수 있으며 게시자 핸들러를 사용하면 Python을 통해 웹 페이지 요청을 더 간단하게 처리하는 방법을 얻을 수 있습니다.

게시자 핸들러는 URL을 Python 객체/함수에 매핑하여 작동합니다. 즉, Python 파일에서 'foo'라는 함수를 정의 할 수 있습니다. http : // localhost/foo 해당 기능을 자동으로 호출합니다. 추가 정보는 여기에 있습니다 : http://www.modpython.org/live/current/doc-html/hand-pub-alg-trav.html

Apache 구성이 일을 작동시키기위한 Apache 구성은 이와 같은 것이 당신에게 잘 제공 될 것입니다.

<Directory /var/www/html/python/>
  SetHandler mod_python
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>

/var/www/html/웹 서버의 루트로 설정하고 Python/Directory에 index.py라는 파일이있는 경우, http : // localhost/python/foo index.py에서 foo () 함수를 호출하거나 존재하지 않으면 404로 실패해야합니다.

addhandler mod_python .py

'PythonHandler'를 설정 했습니까?

요즘에는보다 광범위한 배포 옵션을 위해 기본 MOD-Python 인터페이스 대신 WSGI를 사용하는 것을 고려하십시오. Mod-Python의 WSGI 지원을 통해 또는 아마도 Mod-WSGI를 통해. (예 : WSGIREF를 통한 CGI도 잘 작동하며 쓰레기 성능에 신경 쓰지 않는 개발 환경에서 쉽게 설정할 수 있습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top