Django、lighttpd、FastCGI——can';我不能让它工作

Django、lighttpd、FastCGI——can';我不能让它工作,django,lighttpd,mod-fastcgi,Django,Lighttpd,Mod Fastcgi,好的,所以我在尝试用FastCGI在lighttpd上运行Django时遇到了问题。我已经按照说明做了,但仍然无法让它工作,也不确定问题出在哪里 django项目在使用runserver运行时确实可以工作 因此,我开始django: python manage.py runfcgi socket=/var/run/django/django.sock pidfile=/var/run/django/django-fcgi.pid lighttpd fastcgi配置如下所示: server.d

好的,所以我在尝试用FastCGI在lighttpd上运行Django时遇到了问题。我已经按照说明做了,但仍然无法让它工作,也不确定问题出在哪里

django项目在使用
runserver
运行时确实可以工作

因此,我开始django:

python manage.py runfcgi socket=/var/run/django/django.sock pidfile=/var/run/django/django-fcgi.pid
lighttpd fastcgi配置如下所示:

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",
)
使用此配置(或者如果我在
fastcgi.server
url.rewrite one
)中将“/django”替换为“.fcgi”或“/django.fcgi”),在尝试访问
/
时,我总是会得到404(在
/static
中的文件工作正常)。在
error.log
中,服务器似乎从未尝试过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/ 
如果我将fastcgi条目设置为“/”,并省略
url.rewrite once
部分,django进程确实会被调用,但看起来传递的URI总是“/”,因此对“/static”中的内容的请求会返回根视图的HTML


这是在AmazonEC2上,运行FedoraCore8。我甚至从源代码处安装了最新的lighttpd版本,而不是发行版中的旧版本。

如上面的评论所示,“check local”需要设置为“disabled”。

如上面的评论所示,“check local”需要设置为“disabled”。

。好啊问题是“检查本地”需要“禁用”。我尝试的lighttpd的旧版本一直拒绝“checklocal”配置,并且永远不会工作。请原谅,我很高兴你能让它工作!你应该回答自己的问题并接受它的回答(当它允许你:P时),这样其他遇到这个问题的人就可以很容易地看到解决方案。好啊问题是“检查本地”需要“禁用”。我尝试的lighttpd的旧版本一直拒绝“checklocal”配置,并且永远不会工作。请原谅,我很高兴你能让它工作!你应该回答自己的问题并接受它的回答(当它允许你:P时),这样其他遇到这个问题的人就可以很容易地看到解决方案。