2014-01-27 4 views
0

Debug=True 모드에서 VPS에서 내 앱을 시작하려고합니다.Django + Apache + mod_wsgi = 잘못된 요청 (400)

저는 Python 2.7에서 장고 1.6을 사용하고 있습니다.

간단한 wscgi 스크립트를 사용해 보았는데 브라우저가 정상적으로 작동하는 것으로 나타났습니다 (기본적으로 200 및 "Hello world"는 text/plain으로 반환 됨) . 여기 내 구성입니다 :

가상 호스트 설정

<VirtualHost *:80> 
ServerName subdomain.domain.info 
ServerAlias www.subdomain.sigizmund.info 
WSGIScriptAlias//var/www/subdomain/index.wsgi 
Alias /static/ /var/www/subdomain/static/ 
ErrorLog /tmp/subdomain.error.log 
CustomLog /tmp/subdomain.custom.log common 
LogLevel debug 
<Location "/static/"> 
    Options -Indexes 
</Location> 
<Directory /home/sgzmd/code/myproject> 
    Order deny,allow 
    Allow from all 
</Directory> 
</VirtualHost> 

index.wsgi

import os 
import sys 
import site 

# Add the site-packages of the chosen virtualenv to work with 
site.addsitedir('/home/sgzmd/.virtualenvs/myenv/local/lib/python2.7/site-packages') 

PROJECT_PATH = '/home/sgzmd/code/myproject' 
if PROJECT_PATH not in sys.path: 
    sys.path.insert(0, PROJECT_PATH) 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' 

# Activate your virtual env 
activate_env=os.path.expanduser("~/.virtualenvs/myenv/bin/activate_this.py") 
execfile(activate_env, dict(__file__=activate_env)) 

import django.core.handlers.wsgi 
import cStringIO 

import pprint 

class LoggingMiddleware: 

    def __init__(self, application): 
     self.__application = application 

    def __call__(self, environ, start_response): 
     errors = environ['wsgi.errors'] 
     pprint.pprint(('REQUEST', environ), stream=errors) 

     def _start_response(status, headers, *args): 
      pprint.pprint(('RESPONSE', status, headers), stream=errors) 
      return start_response(status, headers, *args) 

     return self.__application(environ, _start_response) 

application = LoggingMiddleware(django.core.handlers.wsgi.WSGIHandler()) 

나는 다음과 같은 한 로깅 출력 : (LoggingMiddleware에서) http://pastebin.com/SnZVEeT1/var/log/django/error.log 동안 생성되고 있으며, 다시 만들어지면 완전히 비어 있습니다. 지금은 선택의 여지가 기본적 해요로 http://pastebin.com/Byr8RStb

는, 어떤 포인터와 아이디어 감사하겠습니다 :

나는 앱 내 콘텐츠를 사용할 여기 프로젝트의 settings.py를 편집하여,로드하고 있다는 생각.

답변

0

이 시작 작동하지 않습니다 : 아파치가 특정 사용자로 실행하고 ~ VIRTUALENV가 설치되었다 자신의 사용자에게 확장하지 않기 때문에

activate_env=os.path.expanduser("~/.virtualenvs/myenv/bin/activate_this.py") 

이다.

관련성이 있는지 여부는 알 수 없습니다.