Django in Lighttpd + FCGI auf Ubuntu - Neufassungen aufhören zu arbeiten, wenn ich einen zweiten Standort ermöglichen

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

Frage

ich habe lighttp konfiguriert django über FastCGI auf Ubuntu zu starten und bedienen. Wenn ich nur einen einzigen Standort aktiviert haben (via Ubuntu Apache-like Conf-verfügbar, Conf-fähigen Mechanismus), läuft alles wunderbar. Wenn ich einen zweiten Standort zu ermöglichen, scheinen meine url Neufassungen richtig funktionieren, obwohl die fcgi Prozesse gestartet und Daten dienen. Hier ist meine Konfiguration:

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

Wenn ich den zweiten Standort zu ermöglichen, ist alles identisch, außer dass jetzt gibt es eine zweite Verbindung zu einer (leicht modifizierte) Kopie von 10-example.conf in conf-fähig ist. Wenn dies geschieht, nicht meine Seiten mit diesem django-served Fehler:

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

Ich bin mir nicht sicher, warum eine andere Website ermöglicht das vorhandene Setup brechen sollte. Ich glaube, die Host-basierte Syntax keine Änderungen an diesem bestimmten Host isolieren sollte, aber es scheint nicht der Fall zu sein.

War es hilfreich?

Lösung

Falls jemand in der Zukunft in dieser Frage sieht, glaube ich, die Antwort war, dass es in der Version 1.4.20 fixiert ist oder höher und der Server v1.4.19 wurde ausgeführt, da das ist, was Ubuntu-Repository hatte.

Andere Tipps

Haben Sie setzen FORCE_SCRIPT_NAME " "in settings.py?

FORCE_SCRIPT_NAME=""
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top