Django em Lighttpd + FCGI no Ubuntu - reescreve parar de trabalhar quando eu permitir que um segundo site
Pergunta
Eu tenho lighttp configurado para iniciar e servir Django via FastCGI no ubuntu. Quando eu tiver apenas um único local habilitado (via ubuntu é apache-like, mecanismo permitiu-conf conf-disponível), tudo corre bem. Quando eu permitir que um segundo local, meus regravações de URL parecem parar de funcionar corretamente, embora os processos fcgi são iniciados e servindo de dados. Aqui está a minha configuração:
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",
)
Quando eu permitir que o segundo local, tudo é idêntico, exceto que agora há um segundo link para um (ligeiramente modificada) cópia do 10-example.conf
em conf-enabled. Quando isso acontece, meus sites falhar com este erro serviu-django:
Page not found (404)
Request Method: GET
Request URL: http://example.com/django.fcgi/[the url I requested]
Eu não sei por que permitir que outro site deve quebrar a configuração existente. Eu acredito que a sintaxe baseada em host deve isolar quaisquer alterações a esse host específico, mas não parece ser o caso.
Solução
No caso de alguém no futuro olha para esta pergunta, eu acredito que a resposta foi que é corrigido na versão 1.4.20 ou posterior e o servidor estava funcionando v1.4.19 já que é o repositório do Ubuntu teve.
Outras dicas
Você quis definir FORCE_SCRIPT_NAME para " "em settings.py?
FORCE_SCRIPT_NAME=""