2011-04-05 4 views
2

일부 장고 웹 사이트를 호스팅하기 위해 ec2 인스턴스를 실행 중입니다. 웹 사이트는 mod_wsgi를 사용하여 Apache에 의해 제공됩니다.django, apache, mod_wsgi 및 python py-scrypt가 함께 작동하지 않음

며칠 새 웹 플랫폼을 배포하려고 했으므로 개발 중이지만 해결할 수없는 문제가 발생했습니다. 보안상의 이유로 우리는 scrypt 0.4을 사용하여 암호와 같은 사용자의 개인 정보를 보호합니다.

개발 서버에서 모든 것이 매력처럼 작동하지만 실제 서버에 배포 할 때 500 개의 내부 서버 오류가 발생합니다. 나는 scrypt 모듈은 모든 것이 잘 작동에 사용되는 행의 주석을 해제하면

: 리퍼러, socialmarketingplatform.wsgi : 아파치 로그는 다음과 같은 메시지를 나에게 스크립트 헤더의

조기 종료를 제공합니다. 또한 장고와 함께 제공되는 서버를 실행할 때 scrypt를 사용하면 모든 것이 라이브 서버에서 작동합니다. 따라서 오류를 생성하는 mod_wsgi, django 및 scrypt의 조합입니다.

import os 
import sys 

path = '/var/www/vhosts/[sub_domain]' 
if path not in sys.path: 
    sys.path.append(path) 
sys.path.append(path + '/socialmarketingplatform') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'socialmarketingplatform.settings' 

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

을 다음과 같은 가상 호스트 설정 :

나는 다음과 같은 WSGI 파일을 사용하고

<VirtualHost *:80> 
    #Basic setup 
    ServerAdmin [removed email] 
    ServerName luxdevelopment.net 
    ServerAlias [sub domain] 
    DocumentRoot /var/www/vhosts/[sub domain]/socialmarketingplatform/ 

    Alias /media/admin /usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/contrib/admin/media 
    Alias /media /var/www/vhosts/[sub domain]/socialmarketingplatform/media 
    <Location media=""> 
     SetHandler None 
    </Location> 

    LogLevel warn 
    ErrorLog /var/log/httpd/smp_error.log 
    CustomLog /var/log/httpd/smp_access.log combined 

    WSGIDaemonProcess luxdevelopment.net user=apache group=apache threads=25 
    WSGIProcessGroup luxdevelopment.net 

    WSGIScriptAlias//var/www/cgi-bin/socialmarketingplatform.wsgi 
</VirtualHost> 

나는 누군가가이 문제를 도와 줄 수 있기를 바랍니다. 더 이상의 질문이 있으면 알려주세요.

+0

아아! DocumentRoot에 코드를 넣지 마십시오! 특히 당신이 보안에 관심이 있다면. –

+0

@ daniel-roseman : 이것이 내 문서 루트가/var/www/html/인 이유입니다. 어쩌면 내가 그 폴더 밖에서 소스를 옮길 수 있는지 알 수있을 것입니다. 귀하의 제안에 감사드립니다. –

+0

글쎄, 내 말은 당신이 코드의 위치에 DocumentRoot를 설정했다는 것이다. 그러지 마. –

답변

1

참조 :

http://code.google.com/p/modwsgi/wiki/FrequentlyAskedQuestions#Apache_Process_Crashes

메시지 '스크립트 헤더의 조기 종료'는 데몬 프로세스 충돌 코드의 일반적으로 나타낸다. 메인 아파치 오류 로그 파일에서 세그먼테이션 결함 또는 유사한 메시지를 찾아서이를 검증 할 수 있습니다. 기본 Apache 설정과 VirtualHost에서 'LogLevel info'를 활성화하면 mod_wsgi는 데몬 프로세스 재시작에 대해 더 자세히 기록합니다.

그 데몬 프로세스 그룹의 전용 응용 프로그램을 실행하는 경우 빠른 치료는 추가 :

WSGIApplicationGroup %{GLOBAL} 

이 주위에 작동이에서 일을 제대로 기록되지 파이썬 깨진 타사 확장 모듈에 의한 충돌하는 하위 해석기.

이외에도 FAQ에 설명 된대로 공유 라이브러리 버전이 일치하지 않을 수 있습니다.

+0

이 의견을 보내 주셔서 감사합니다. 결국 문제를 해결하지 못했습니다. –