Django in Lighttpd + FCGI su Ubuntu - le riscritture smettono di funzionare quando abilito un secondo sito

StackOverflow https://stackoverflow.com/questions/1009327

Domanda

Ho Lighttp configurato per avviare e servire Django tramite FastCGI su Ubuntu. Quando ho abilitato un solo sito (tramite il meccanismo conf-available, abilitato conf di Ubuntu), tutto funziona alla perfezione. Quando abilito un secondo sito, la mia riscrittura dell'URL sembra smettere di funzionare correttamente, anche se i processi fcgi vengono avviati e forniscono dati. Ecco la mia configurazione:

conf-disponibile / 10-example.conf

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

include / 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.*)
Page not found (404)
Request Method:     GET
Request URL:    http://example.com/django.fcgi/[the url I requested]
quot; => "$1", "^/favicon\.ico<*>quot; => "/media/favicon.ico", "^/robots\.txt<*>quot; => "/robots.txt", "^(/.*)<*>quot; => "/django.fcgi$1", )

Quando abilito il secondo sito, tutto è identico, tranne che ora c'è un secondo collegamento a una copia (leggermente modificata) di 10-example.conf in conf-enabled. Quando ciò accade, i miei siti falliscono con questo errore servito da django:

<*>

Non sono sicuro del perché l'attivazione di un altro sito debba interrompere l'installazione esistente. Credo che la sintassi basata sull'host dovrebbe isolare qualsiasi modifica a quell'host specifico, ma non sembra essere il caso.

È stato utile?

Soluzione

Nel caso in cui qualcuno in futuro guardasse a questa domanda, credo che la risposta fosse che è stato risolto nella versione 1.4.20 o successive e che il server stava eseguendo v1.4.19 poiché era quello che aveva il repository di Ubuntu.

Altri suggerimenti

Hai impostato FORCE_SCRIPT_NAME su " ; " in settings.py?

FORCE_SCRIPT_NAME=""
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top