2009-06-17 5 views
2

lighttp가 우분투에서 fastcgi를 통해 django를 시작하고 제공하도록 구성되었습니다. 내가 단일 사이트 만 사용할 수있게되면 (우분투의 아파치와 같은 conf-available, conf-enabled 메커니즘을 통해) 모든 것이 아름답게 실행됩니다. 두 번째 사이트를 활성화하면 fcgi 프로세스가 시작되고 데이터를 제공하지만 URL 재 작성이 올바르게 작동하지 않는 것 같습니다. 즉 지금 10-example.conf의 (약간 수정) 사본에 두 번째 링크가 거기를 제외하고 내가 두 번째 사이트를 사용하면Django in Lighttpd + FCGI in Ubuntu - 두 번째 사이트를 활성화 할 때 다시 쓰기가 작동하지 않습니다.

conf-available/10-example.conf

$HTTP["host"] == "example.com" { 
    var.virt_name = "example" 
    include "includes/incl-fastcgi.conf" 
} 

includes/incl-fastcgi.conf

global { 
    server.modules += ("mod_rewrite", 
        "mod_fastcgi") 
} 

var.site_folder = "/" + virt_name 
var.site_root = server_root + site_folder 
var.socket = server_root + "/.handles/" + virt_name + ".socket" 
server.document-root = site_root 

fastcgi.server = (
    "/django.fcgi" => (
     "main" => (
      "socket" => socket, 
      "bin-path" => "/etc/lighttpd/scripts/fcgi.sh", 
      "bin-environment" => ("VIRT" => virt_name,), 
      "check-local" => "disable", 
      "min-procs" => 1, 
      "max-procs" => 1, 
      "allow-x-send-file" => "enable", 
     ), 
    ), 
) 

alias.url = (
    "/media/admin" => "/usr/share/python-support/python-django/django/contrib/admin/media", #why the hell does it live here? 
) 

url.rewrite-once = (
    "^(/media.*)$" => "$1", 
    "^/favicon\.ico$" => "/media/favicon.ico", 
    "^/robots\.txt$" => "/robots.txt", 
    "^(/.*)$" => "/django.fcgi$1", 
) 

, 모든 것이 동일하다 : 여기 내 구성입니다 conf-enabled에서. 이 경우 장고 서비스 오류로 내 사이트가 실패합니다.

Page not found (404) 
Request Method:  GET 
Request URL: http://example.com/django.fcgi/[the url I requested] 

왜 다른 사이트를 사용하도록 설정하면 기존 설정이 손상되는지 잘 모르겠습니다. 필자는 호스트 기반 구문이 특정 호스트에 대한 변경 사항을 격리해야한다고 생각하지만 사실이 아닌 것으로 보입니다.

답변

2

미래에이 질문을하는 사람이 있다면, 그 대답은 1.4.20 이후 버전에서 수정되었고 그 서버는 v1.4.19를 실행하고 있었기 때문에 우분투 저장소에있었습니다.

2

settings.py에서 FORCE_SCRIPT_NAME을 ""로 설정 했습니까?

FORCE_SCRIPT_NAME="" 
+0

네, 그 효과가 없습니다. –

+0

어쨌든 실제로 필요하기 때문에 그대로 두십시오;) – jpic

+0

저에게 도움이 되었어요! 감사! –

관련 문제