Django dans Lighttpd + FCGI sur Ubuntu - les réécritures cessent de fonctionner lorsque j'active un deuxième site

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

Question

J'ai configuré lighttp pour démarrer et servir django via fastcgi sur Ubuntu. Lorsque je n'ai qu'un seul site activé (via le mécanisme d'apache similaire à apache d'ubuntu), tout fonctionne à merveille. Lorsque j'active un deuxième site, mes réécritures d'url semblent cesser de fonctionner correctement, bien que les processus fcgi soient démarrés et servent des données. Voici ma configuration:

conf-available / 10-example.conf

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

inclut / 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", )

Lorsque j'active le deuxième site, tout est identique sauf qu'il existe maintenant un deuxième lien vers une copie (légèrement modifiée) de 10-example.conf dans conf-enabled. Lorsque cela se produit, mes sites échouent avec cette erreur django-desservie:

<*>

Je ne sais pas pourquoi l'activation d'un autre site devrait rompre la configuration existante. Je pense que la syntaxe basée sur l'hôte devrait isoler toute modification apportée à cet hôte spécifique, mais cela ne semble pas être le cas.

Était-ce utile?

La solution

Au cas où quiconque se pencherait sur cette question à l'avenir, je pense que la réponse a été qu'il est corrigé dans la version 1.4.20 ou ultérieure et que le serveur exécutait la version 1.4.19, car c'est ce que le référentiel Ubuntu possédait.

Autres conseils

Avez-vous défini FORCE_SCRIPT_NAME à " ; " dans settings.py?

FORCE_SCRIPT_NAME=""
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top