2011-03-25 5 views
0

데몬 모드에서 mod_wsgi로 실행되는 장고 내에서 GEOIP_COUNTRY_CODE 환경 변수에 액세스하고 싶습니다. 문제는 서버에서 실행되는 PHP 스크립트 내에서 변수를 볼 수 있지만 WSGI를 통해 장고 사이트로 전달되지 않는 것 같습니다. request.META.get('GEOIP_COUNTRY_CODE')이 작동하지 않습니다. mod_wsgi에 추가 환경 변수에 대해 WSGIPassAuthorization과 같은 것이 있습니까? 변수가 환경 변수로 확장 모듈에 의해 설정되어있는 경우아파치 2.2.17에서 mod_wsgi와 함께 동작 할 mod_geoip 얻기

+0

:이 발생하는 여부를

에 표시 WSGI 에코 테스트 스크립트를 사용하여 시도하고 확인하려면? 질문에 답을 할 수없는 이유는 어디에/어떻게 설정되어 있는지 알지 못하기 때문입니다. –

+0

AFAICT 아파치 2의 mod_geoip에 의해 설정됩니다. – Fladi

답변

1

, 다음은 액세스 할 수와 같은 :

import os 
value = os.environ['GEOIP_COUNTRY_CODE'] 

즉, 다른 모든 환경 변수가있다..


UPDATE 1가 아파치 요청 구조 req.subprocess_env 설정된 경우

같은 mod_geoip 그러나 아파치 모듈의 내부에 설정하면

그것이 WSGI 애플리케이션 영역으로 옮겼다 될 수있는 유일한 방법은 . 즉, SetEnv 지시문이 Apache와 함께 사용 된 것과 같습니다. 이 경우 WSGI 응용 프로그램에 전달 된 WSGI environ 사전에 나타나야합니다. 당신이 처음에 GEOIP_COUNTRY_CODE을 설정하는 경우

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Displaying_Request_Environment

+0

그것도 시도했지만 'GEOIP_COUNTRY_CODE'는 os.environ dict에 포함되어 있지 않습니다. – Fladi

+0

장고 1.3에서 WSGi 환경이 요청에 병합 된 것으로 보입니다. META, 이제는 쉽게 request.META.get ('GEOIP_COUNTRY_CODE')를 호출하여 원하는 값을 얻을 수 있습니다. – Fladi

+0

나는 Django 1.3의 병합에 불과하다고 생각합니다. Django 요청 객체를 통해 WSGI environ 사전에 항상 접근 할 수 있었고, 기존의 방식대로 사용했던 것들을 사용하는 많은 것들을 망가 뜨렸을 것입니다. . –

관련 문제