不知道是太简单,还是其他原因,很多讲解利用 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
