Lighttpd
错误解决

不知道是太简单,还是其他原因,很多讲解利用 FastCGI 在 Web 服务器上搭建 Django 应用的文章都只是贴上几段配置代码,让我这样不甚了解的初学者四处碰 壁 ;-)

本文简单介绍(争取每行代码都能理解)在几种常见的 Web 服务器上搭建 Django 应用。

请仔细参考 Django 文档: http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/

Lighttpd

server.modules   = (
           "mod_rewrite",
           "mod_fastcgi",
...
)
$SERVER["socket"] == "172.16.70.1:81" {
server.document-root = "/www/tat/"
fastcgi.server = (
    "/tat.fcgi" => (
        "main" => (
            # Use host / port instead of socket for TCP fastcgi
            #"host" => "127.0.0.1",
            #"port" => 3033,
            "socket" => "/www/tat/tat.sock",
            "check-local" => "disable",
        )
    ),
)
alias.url = (
    "/static" => "/www/tat/static/",
)

url.rewrite-once = (
    "^(/static.*)$" => "$1",
    "^/favicon\.ico$" => "/static/favicon.ico",
    "^(/.*)$" => "/tat.fcgi$1",
)
}
touch /www/tat/tat.sock
/usr/bin/python manage.py runfcgi method=threaded socket=/www/tat/tat.sock pidfile=/www/tat/tat.pid

如果在模板里使用 "{% url XXX %}" 语法,那么生成的 URL 可能有个前缀(本 例为 "/tat.fcgi") 。这时候可以在 settings.py 里面设置 "FORCE_SCRIPT_NAME = ''" 取消这个前缀!

错误解决

"500 - Internal Server Error"

原因有很多,可以参考 /var/log/lighttpd/error.log