2010-06-17 3 views
2

프로덕션 서버에서 Django 프로젝트를 실행하려고합니다.Django apache-wsgi 구성 문제

pip를 사용하여 환경을 설정 했으므로 모든 것이 잘 실행되는 개발 환경과 동일합니다. 유일한 차이점은 프로덕션 환경에서 virtualenv를 사용하지 않는다는 것입니다. 왜냐하면이 프로젝트가 프로덕션 환경에서 실행될 유일한 프로젝트이기 때문입니다. 또한 프로덕션 환경에는 정적 컨텐츠를 제공하는 Nginx 리버스 프록시가 있으며 Apache2에 동적 요청을 전달합니다. 내가 서버에 액세스 할 때

import sys, os 

sys.path.append('/home/project/src') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 
import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

, 내가 가져 오기 오류 : 다음과 같이

아파치 WSGI 파일은 SRC/폴더 아래에 middleware.py을 의미

ImproperlyConfigured: Error importing middleware middleware: "cannot import name UserProfile" 

하는 설정에 의해 참조됩니다. 하지만 ./manage.py 쉘 프롬프트에서 미들웨어와 UserProfile 클래스를 모두 가져올 수 있습니다.

wsgi 파일의 경로에 문제가있는 것 같지만 무엇을 볼 수 없습니다. 디렉토리 구조는 다음과 같습니다.

/home/project 
/home/project/src (which contains the settings.py, middleware.py and app folders) 
/home/apache/apache.wsgi 

모든 도움을 주실 수 있습니다.

감사합니다, OMAT

+1

설치된 앱의 모습은 어떻습니까? sys 경로에 "/ home/project /"를 추가하십시오. – Prashanth

+0

'django-admin.py ... '을 입력 한 경로를 추가하십시오. – deostroll

+0

설치된 응용 프로그램은 다음과 같습니다 : INSTALLED_APPS = ('django.contrib.auth ' , ..., '프로파일', '제품'...). wsgi 파일의 sys.path에 "/ home/project"를 추가 하시겠습니까? 이것은 작동하지 않았다. – omat

답변

3

아파치 사용자가 액세스 할 수 있도록 그건 당신이 사용자가 읽을 수 있습니다 경우 다른 사용자와 데몬 모드를 실행하는 경우를 제외하고 모든 디렉토리/파일이 다른 사람이 읽을 수 있는지 확인 그들. 또한 읽기 :

http://blog.dscpl.com.au/2010/03/improved-wsgi-script-for-use-with.html

그것은 도움이되지 수 있지만, WSGI 스크립트 파일의 내용이 프로세스 환경을 보장합니다 그 말에 설명 장고 개발 서버는 경우에 무엇을 그것은 이러한 차이점에 관련되는 설정 가깝다.

+0

많이 감사합니다. 왜, 어떻게 당신의 wsgi 스크립트가 내 문제를 해결했는지 확신 할 수 없습니다. btw, 귀하의 게시물에 대한 링크를 Google의 캐시 된 사본 덕분에 액세스 할 수 없습니다. – omat

1

내 자신의 파일을 보면, 나는 프로젝트가 들어있는 디렉토리를 추가, 나는 project .settings하지를 지정 settings

Try :

import sys, os 

sys.path.append('/home/') 
sys.path.append('/home/project/') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings' 
import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

당신이 좋아하는 무언가를 만든 경우가 더 좋을 것이다 ~/django-sites을 대신 지정하십시오. /home