2013-01-21 5 views
0

프로덕션 및 dev에 2 개의 다른 설정 파일을 사용하려고합니다. 그래도 난 아파치와 함께 실행하면 runserverdjango 사이트 (wsgi) 배포

와 서버를 실행할 때

내가 작품 완벽하게 DJANGO_SETTINGS_MODULE = 'mysite.settings_production'
를 설정, 아파치는 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")를 사용하는 대신 ~/.bash_profile의 설정을 사용하지 않는 것 wsgi.py 파일에

아마도 나는 아파치가 다른 사용자가 아닌 내 컴퓨터에서 실행되고 있기 때문일 것입니다. ok .. 그래서 ec2 우분투에서 www 데이터로 실행되고있는 것 같습니다.

그래서 /home/www-data/.bash_profile을 만들고 env 변수를 설정해야합니까?

다른 설정 파일을 사용하는 것이 너무 번거로운 것처럼 보입니다.
분명히 쉬운 방법이 있습니까? (소스 제어이기 때문에 wsgi.py 파일을 변경하고 싶지 않습니다.)

답변

0

bash_profile을 사용하는 것은 완전히 잘못된 방법입니다.

올바른 방법은 wsgi.py 파일을 사용하는 것입니다. 그러나이 작업을 원하지 않으므로 (버전 관리가 어떤 작업과 관련이 있는지 이해할 수는 없지만) SetEnv를 사용하여 Apache 구성에서 환경 변수를 직접 설정할 수 있습니다.

SetEnv DJANGO_SETTINGS_MODULE mysite.settings 
+0

httpd.conf에서이 작업을 수행 할 수 있습니까? (내 dev 컴퓨터에서 settings.py를 사용하고 프로덕션 컴퓨터에서 settings_production.py를 사용하려고합니다 .wsgi.py는 git 또는 svn에서 제어하는 ​​버전이기 때문에 두 배포에 모두 영향을줍니다) – eugene

+0

httpd.conf에 SetEnv를 추가하려고 시도했습니다. apache2.conf . 하지만 작동하지 않습니다 .. – eugene

+0

mod_wsgi docs는 특히 SetEnv가 호출 된 스크립트의 시스템 환경에 아무런 영향을 미치지 않는다고 언급합니다 – hop

0

글쎄, 그건 정말 잘못된 길이야. 다른 환경에 대해 별도의 설정을하는 일반적인 방법은 환경에 의존 local_settings.py에 저장하는 것입니다 (또는 무엇이든 당신이 그것을 이름) settings.py

from local_settings.py import * 
에서와 imprort는

는 다음과 같이 프로젝트 저장소에서 local_settings.py 넣지 마십시오 당신은 커밋마다 그것을 오버라이드 할 것이다. 로컬 설정 샘플을 유지하려면 별도의 파일 (예 : local_settings.py.example

settings.py 시작 부분에서 로컬 설정을 가져올 수 있으므로 settings.py 설정이 로컬 설정보다 우선 적용됩니다. 또는 마지막에 두 가지 경우 모두 로컬 설정 파일이 두 개 있습니다.