Django开发-在lighttpd上应用django
这个blog写了n天。是痛苦的过程 。要知道什么叫做丈二模不着头脑,哪就看看这几天我发愁的样子好了。 :) 原因很简单,就是lighttpd的文档中没有与scgi有关的说明,而官方的文档中也没有什么可说可明的。这个条条对于我来讲很重要,另外我也做了一个简单的测试,证明研究scgi是对滴。 :)
首先来说说配置基于fastcgi的lighttpd+django的工作系统。在lighttpd.conf中要有如下的配置:
这是我的server module和fastcgi配置:
server.modules = (
"mod_rewrite",
"mod_status",
"mod_fastcgi",
"mod_accesslog" )
fastcgi.serve = ( "/hdsite" =>
( "main" =>
(
"socket" => "/tmp/hdsite-fastcgi.socket",
"check-local" => "disable",
)
)
)
注意,mod_fastcgi是必需的。启动你的lighttpd。同时我写了以下脚本启动django的fastcgi,它通过/tmp/hdsite-fastcgi.socket这个unix socket来给lighttpd提供fastcgi服务:
#!/bin/bash PRJDIR="/Users/HD/work/djprj/hdtest" PIDFILE="/tmp/hdsite.pid" SOCKET="/tmp/hdsite-fastcgi.socket" cd $PRJDIR if [ -f $PIDFILE ]; then kill `cat -- $PIDFILE` rm -rf -- $PIDFILE fi python2.5 manage.py runfcgi method=threaded socket=$SOCKET pidfile=$PIDFILE
启动这个脚本,之后后我们可以访问一下http://localhost/hdsite看看是不是正常了。
基于scgi的lighttpd+django配置和fastcgi相似。lighttpd.conf中的配置如下
server.modules = (
"mod_rewrite",
"mod_status",
"mod_scgi",
"mod_accesslog" )
scgi.serve = ( "/hdsite" =>
( "main" =>
(
"socket" => "/tmp/hdsite-fastcgi.socket",
"check-local" => "disable",
)
)
)
这里的fastcgi都换成了scgi了。而启动scgi的脚本与启动fastcgi的脚本差别也不大:
#!/bin/bash
PRJDIR="/Users/HD/work/djprj/hdtest"
PIDFILE="/tmp/hdsite.pid"
SOCKET="/tmp/hdsite-fastcgi.socket"
cd $PRJDIR
if [ -f $PIDFILE ]; then
kill `cat -- $PIDFILE`
rm -rf -- $PIDFILE
fi
python2.5 manage.py runfcgi protocol=scgi method=threaded socket=$SOCKET pidfile=$PIDFILE
重启lighttpd和scgi服务就ok了。
引用通告 (0)
下面所列出的是引用这篇文章: Django开发-在lighttpd上应用django 的Blog链接.
这篇文章的引用通告URL: http://mt.opensource.org.cn/cgi-bin/mt/mt-tb.cgi/27

发表评论