2011-02-03 3 views
6

django 사이트를 설정하고 dev 서버에서 실행 한 후 권장 mod_wsgi/apache22를 사용하여 프로덕션 환경에서 배포하는 방법을 알아 냈습니다. 현재 Windows XP 시스템에이 기능을 배포하는 것으로 제한되어 있습니다.Django + Apache + Windows WSGIDaemonProcess Alternative

제 문제는 필자가 작성한 여러 장고보기가 파이썬 subprocess 모듈을 사용하여 파일 시스템에서 프로그램을 실행한다는 것입니다. subprocess.Popen 실행할 때 오류가 계속 나는 이것에 대해 물어 본 몇 가지 질문을 봤고, 허용 된 대답은 문제를 (WSGIDaemonProcess를 사용하여 아파치 사용자의 권한으로 인해, 나는 믿는다)입니다.

유일한 문제는 WSGIDaemonProcess를 Windows의 mod_wsgi에 사용할 수 없다는 것입니다. mod_wsgi/apache/windows/subprocess를 함께 사용할 수있는 방법이 있습니까?

+0

http://stackoverflow.com/questions/3703794/django-app-stops-working-when-deployed-on-apache-subprocess-runs-but-fails는 대답이없는 동일한 질문으로 보입니다. . – Randy

+3

"계속 오류가 있습니다."너무 모호하여 도움을줍니다. 특히 어떤 오류가 있습니까? 짧은 코드와 실제 오류를 게시하십시오. –

+0

해결되었습니다. WSGIDaemonProcess를 사용할 수있는 Linux 머신을 찾았습니다. – Randy

답변

1

mod_wsgi 내에서 서브 프로세스를 여는 것은 좋지 않습니다.

아파치 측에서 mod_proxy를 사용하고 아파치에서 Django를 실행하는 WSGI 서버로 요청을 전달하는 방법이있다. 이것은 아파치의 메모리 공간에서 파이썬 스레드를 옮기는 이점이있다. wsgi servers을위한 수십 가지 옵션이있다; 토네이도와 gunicorn은 두 가지 인기있는 선택이며 gunicorn은 Django와 통합됩니다.

* 통합하여 나는 단지 INSTALLED_APPS에 추가하면 manage.py 명령을 제공한다는 것을 의미합니다.

1

이 구성에서 하위 프로세스를 사용하려고 시도한 몇 가지 문제가 발생했습니다. 특별히 문제가있는 것이 무엇인지 확신 할 수 없기 때문에 해결하기가 쉽지 않은 몇 가지 사항을 공유 할 수 있지만 추후에는 사소한 것처럼 보입니다.

  1. 응용 프로그램을 실행할 때 권한 관련 오류가 발생했습니다. 나는 꽤 많이 검색했지만 Windows 특정 답변을 찾는 데 어려움을 겪고있었습니다. 이 점은 분명한 사실입니다. Apache를 실행하는 사용자를 권한이 더 높은 사용자로 변경했습니다. (참고로, 여기에는 보안상의 의미가 있으므로 사용자는 자신이 무엇을 얻고 있는지 이해하고 있는지 확인해야합니다.)
  2. Django (구성에 따라 다름)는 문자열을 유니 코드로 저장할 수 있습니다. 내가 올바른 인수를 전달하는 데에도 불구하고 충돌하는 내보기에서 일부 매개 변수를 실행하려고 명령 줄 응용 프로그램을했다. 내 예상 된 문자열보다 <type 'unicode'> 반환 된 형식 (args)을 한 좌절 후 몇 시간. 빠른 전환으로이 문제가 해결되었습니다.