Django, Lighttpd et l'admin de Django sont dans un bateau...
Par NiCoS le vendredi 5 septembre 2008, 23:32 - Python - Django - Lien permanent
Comme toute personne faisant tourner Django avec lighttpd, j'ai la configuration suivante :
$HTTP["host"] =~ "(^|www\.)steinmetz\.fr$" {
server.document-root = "/home/nicolas/django/lessteinmetz"
fastcgi.server = (
"/django.fcgi" => (
"main" => (
"host" => "127.0.0.1",
"port" => 8080,
"check-local" => "disable",
)
),
)
alias.url = (
"/media/" => "/home/nicolas/django/django-svn/django/contrib/admin/media/",
)
url.rewrite-once = (
"^(/media.*)$" => "$1",
"^/favicon\.ico$" => "/media/favicon.ico",
"^(/.*)$" => "/django.fcgi$1",
)
}
Là où le bas blesse avec l'arrivée de Django 1.0, c'est que si vous souhaitez accéder à l'interface d'administration, vous vous retrouvez avec une jolie erreur puisque Django, pour l'url en /admin/ vous renvoie un /django.fcgi/admin/ que votre serveur web réécrit en django.fcgi/django.fcgi/admin, ce qui ne peut pas fonctionner.
Cela est du à l'arrivée de FORCE_SCRIPT_NAME. La solution consiste donc à rajouter dans votre fichier settings.py la déclaration suivante :
FORCE_SCRIPT_NAME=""
Relancez votre instance Django et le tour est joué.
Commentaires
Cool, t'es mon sauveur !
J'ai basculé un site en dev en 1.0 la semaine dernière pour voir et je suis tombé sur ce problème, sans pouvoir le résoudre, et ensuite j'étais passé à autre chose.
Merci merci !!
Tom