2013-04-20 2 views
1

여기에 약간의 문제가 있습니다. dreamhost (공유 호스팅)에서 장고 프로젝트를 만들고 있습니다. 내가 디버그 모드이고 내장 서버를 사용할 때 모든 것이 괜찮지 만 500 번 내부 서버 오류가 발생하면 prod로 전환하려고합니다. 인터넷의 모든 어두운 방에서 해결책을 찾았지만 여전히 찾지 못했습니다.Django : Dreamhost에서 여객과 500 내부 서버 오류

내 폴더 :

그래서, 여기 내 설정이다

/home/user/.virtualenvs/myenv/ 
/home/user/project/ 
/home/user/project/sqlite.db 
/home/user/project/project/settings.py 
/home/user/example.com/project (a symlink to /home/user/project) 
/home/user/example.com/passenger_wsgi.py 
/home/user/example.com/public/ 

내 passenger_wsgi.py :

import sys, os 

INTERP = "/home/user/.virtualenvs/myenv/bin/python" 
if sys.executable != INTERP: 
    os.execl(INTERP, INTERP, *sys.argv) 

sys.path.append('/home/user/.virtualenvs/myenv/lib/python3.3/site-packages') 
sys.path.append('/home/user/example.com') 
sys.path.append('/home/user/example.com/project') 

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

사람이이 문제를 해결하는 방법을 알고 있습니까?

편집 내가 언급하는 것을 잊었다

, 내가 파이썬 3를 설치하고 DH의 기본 버전 사촌 1.5 장고 너무 나이입니다.

+0

서버 로그에서 실제 발생되는 오류를 확인 했습니까? –

+0

옙 [Sat 04/20 20:59:26] [오류] [클라이언트 xxx.xxx.xxx.xxx] 스크립트 헤더가 너무 조기에 끝났습니다. internal_error.html – Firas

+0

굉장히 넓었습니다. https://code.google.com/p/modwsgi/wiki/FrequentlyAskedQuestions –

답변

2

/home/user/example.com 디렉토리에서 데이터베이스 파일에도 심볼릭 링크를 추가해야합니다. 또한

는 :

  • 당신은 경로에 /home/user/example.com/project를 추가해야합니다. 다른 두 개는 문제가되지 않아야하지만 필요하지 않습니다.
  • 대신 경로 /home/user/example.com/project를 하드 코딩 당신은 os.getcwd()를 사용할 수 있습니다

    sys.path.append(os.path.join(os.getcwd(), 'project')) 
    

를 프로젝트에서이 파일이나 다른 파일을 변경 한 후, 승객에게 통지 touch tmp/restart.txt을하는 것을 잊지 마세요.

그런데 Django는 Python 버전 2.6.5에서 2.7까지 실험적으로 3.2 및 3.3을 지원합니다. DreamHost의 Python wiki에 따르면 대부분 서버는 일부 서버를 제외하고 2012 년 2 월 현재 Python 2.6.6을 사용해야합니다. 파이썬 버전을 python --version으로 확인하고 2.6.6이 아닌 경우 지원 팀에 서버에서 업그레이드하도록 요청할 수 있습니다.

DreamHost에서 Django를 Python 3.2 또는 3.3과 함께 사용해 보았지만 문제가 있습니다. 아파치의 mod_wsgi 모듈이 현재이 버전에서 작동하지 않는 것 같아서 3.2에서는 작동하지 않습니다. 소스에서 설치하면 작동하지만 공유 호스팅을 사용하면 제어 할 수 없습니다. 나는 확실히 모른다. 그러나 mod_wsgi이 3.2와 함께 작동하지 않으면 3.3과 함께 작동하지 않을 것이다. Dreamhost에서 Django를 사용하려면 2.x 버전의 지원되는 버전을 사용하는 것이 가장 좋습니다.

+0

고마워요.하지만 제대로 작동하지 않았습니다. 어쩌면 내가 장고 1.4 롤백해야 – Firas

+1

내 대답을 업데이 트했습니다. 그것은 일해야한다. 그래서 포기하지 마라! – janos

+0

Aaaaaaaaaaand 그것이 효과가있다! 내 서버에는 파이썬 2.6.6이있다. 그래서 나는 그것으로 새로운 virtualenv를 만들고, 프로젝트를 옮기고, 승객의 INTERP 경로를 파이썬 2.6.6으로 바꾸고, DH를 재시작했다. 그리고 마침내 성공했다. 고마워요 Janos,이 문제는 제가 승객 측에 있다고 생각해서 절대로 다른 파이썬 버전으로 전환 할 생각이 없었기 때문에 정말로 도움이되었습니다. – Firas