2011-02-24 5 views
1

OK, donc j'ai des problèmes pour essayer de lancer Django sur lighttpd avec FastCGI. J'ai suivi les instructions here, mais je n'arrive toujours pas à le faire fonctionner, et je ne suis pas sûr du problème.Django, lighttpd, FastCGI - ne peut pas le faire fonctionner

Le projet django fonctionne quand il s'exécute avec runserver.

Alors, je commence django:

python manage.py runfcgi socket=/var/run/django/django.sock pidfile=/var/run/django/django-fcgi.pid 

La configuration lighttpd FastCGI ressemble à ceci:

server.document-root  = "/srv/www/lighttpd/" 

fastcgi.server = (
"/django" => (
     (
      "socket" => "/var/run/django/django.sock", 
      "check-local" => "enable", 
     ) 
    ), 
) 

alias.url = (
    "/static" => "/srv/www/lighttpd/static", 
) 

url.rewrite-once = (
    "^(/static.*)$" => "$1", 
    "^(/.*)$" => "/django$1", 
) 

Avec cette configuration (ou si je remplace "/ django" avec, par exemple, ». fcgi "ou"/django.fcgi "dans le fastcgi.server et url.rewrite-once) I toujours obtenir un 404 en essayant d'accéder à / (fichiers /static fonctionnent très bien). Dans error.log, il semble que le serveur ne jamais chercher FastCGI:

2011-02-24 16:18:00: (response.c.300) -- splitting Request-URI 
2011-02-24 16:18:00: (response.c.301) Request-URI :/
2011-02-24 16:18:00: (response.c.302) URI-scheme : http 
2011-02-24 16:18:00: (response.c.303) URI-authority: XXX.amazonaws.com 
2011-02-24 16:18:00: (response.c.304) URI-path  :/
2011-02-24 16:18:00: (response.c.305) URI-query : 
2011-02-24 16:18:00: (response.c.300) -- splitting Request-URI 
2011-02-24 16:18:00: (response.c.301) Request-URI : /d.fcgi/ 
2011-02-24 16:18:00: (response.c.302) URI-scheme : http 
2011-02-24 16:18:00: (response.c.303) URI-authority: XXX.amazonaws.com 
2011-02-24 16:18:00: (response.c.304) URI-path  : /d.fcgi/ 
2011-02-24 16:18:00: (response.c.305) URI-query : 
2011-02-24 16:18:00: (response.c.349) -- sanatising URI 
2011-02-24 16:18:00: (response.c.350) URI-path  : /d.fcgi/ 
2011-02-24 16:18:00: (mod_access.c.135) -- mod_access_uri_handler called 
2011-02-24 16:18:00: (response.c.470) -- before doc_root 
2011-02-24 16:18:00: (response.c.471) Doc-Root  : /srv/www/lighttpd/ 
2011-02-24 16:18:00: (response.c.472) Rel-Path  : /d.fcgi/ 
2011-02-24 16:18:00: (response.c.473) Path   : 
2011-02-24 16:18:00: (response.c.521) -- after doc_root 
2011-02-24 16:18:00: (response.c.522) Doc-Root  : /srv/www/lighttpd/ 
2011-02-24 16:18:00: (response.c.523) Rel-Path  : /d.fcgi/ 
2011-02-24 16:18:00: (response.c.524) Path   : /srv/www/lighttpd/d.fcgi/ 
2011-02-24 16:18:00: (response.c.541) -- logical -> physical 
2011-02-24 16:18:00: (response.c.542) Doc-Root  : /srv/www/lighttpd/ 
2011-02-24 16:18:00: (response.c.543) Rel-Path  : /d.fcgi/ 
2011-02-24 16:18:00: (response.c.544) Path   : /srv/www/lighttpd/d.fcgi/ 
2011-02-24 16:18:00: (response.c.561) -- handling physical path 
2011-02-24 16:18:00: (response.c.562) Path   : /srv/www/lighttpd/d.fcgi/ 
2011-02-24 16:18:00: (response.c.618) -- file not found 
2011-02-24 16:18:00: (response.c.619) Path   : /srv/www/lighttpd/d.fcgi/ 

Si je mets l'entrée FastCGI à «/», sans indiquer la section url.rewrite-once, le processus de django ne obtenir appelé, mais il On dirait que l'URI passé est toujours "/", donc les requêtes pour les éléments dans "/ static" renvoient le code HTML de la vue racine.

Ceci est sur Amazon EC2, exécutant Fedora Core 8. J'ai même installé la dernière version de lighttpd à la place de l'ancienne dans la distribution.

+0

Ugh. D'ACCORD. Le problème était que "check-local" devait être "désactivé". L'ancienne version de lighttpd que j'essayais continuait à rejeter la config "check-local", et ne marcherait jamais. Excusez le bruit. –

+0

Je suis content que vous l'ayez fait fonctionner! Vous devriez répondre à votre propre question et l'accepter comme réponse (quand il vous permet: P) afin que les autres qui rencontrent ce problème puissent facilement voir la solution. –

Répondre

1

Comme dans le commentaire ci-dessus, "check-local" doit être réglé sur "disabled".

Questions connexes