최근에 나는 내 WSGI 애플리케이션 중 하나를 하위 디렉토리에 넣어 다양한 스크립트가 포함된 다른 디렉토리가 이전처럼 작동하도록 하고 싶었습니다. 그렇게 하기 위해 전역 네임스페이스에 다음 지시문을 추가했습니다 (역시 동일한 효과를 주는 httpd.conf
에 넣으려고 했습니다 ).VirtualHost
WSGIScriptAlias /hello/ /var/www/hello/hello.wsgi
그런 다음 나는 달렸다 django-admin startproject hello
. Apache 구성을 다시 로드한 후 http://localhost/hello/
Django "환영" 화면을 가리키는지 확인할 수 있습니다 . 그런 다음 튜플 hello/urls.py
에 다음 줄을 추가하도록 편집했습니다 urlpatterns
.
url(r'^hello/', 'hello.views.home'),
다음으로 다음 내용으로 hello/views.py를 만들었습니다.
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")
불행하게도 을(를) 방문하려고 하면 http://localhost/hello/hello
표준 Apache 404 메시지가 표시되고 오류 로그에 다음 항목이 표시됩니다.
[Mon Dec 23 19:49:44 2013] [error] [client 31.182.131.38] Target WSGI script not found or unable to stat: /var/www/hello/hello.wsgihello
. hello.wsgihello
두 번째는 URL 뒤에 hello
나타나는 텍스트입니다 . /hello/
의 http://localhost/hello/unknown
경우는 입니다 hello.wsgiunknown
. 내 내용은 다음과 같습니다 hello.wsgi
.
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'hello.settings'
path = '/var/www/hello'
if path not in sys.path:
sys.path.append(path)
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
내가 뭐 잘못 했어요? 어떻게 해결하나요?
답변1
파일 구문이 /var/www/hello/hello.wsgi
나를 혼란스럽게 했습니다. 분명히, 대신에 하나를 가리키면 /var/www/hello/hello.wsgi/
구성이 제대로 작동하는 것 같습니다.