折腾了好几天终于搞定了
lighttpd的设置如下
url.rewrite-once = (
"^(/media.*)$" => "$1",
"^(/admin_media.*)$" => "$1", ( 这个地方容易犯错误,需要把django admin 的css link 到 项目目录下)
"^(/.*)" => "/mysite.fcgi$1" , (这里折腾最长时间 ,后来sky 告诉我 设置 setting 文件中的 FORCE_SCRIPT_NAME = "")
"^/favicon.ico$" => "/media/favicon.ico",
)
fastcgi.server = (
"/mysite.fcgi" => (
"main" => (
"socket" => "/home/web.sock",
"check-local" => "disable",
)
),
另外 :写了 一个适合自己服务器的脚本 用来启动 fastcgi
runfastcgi #!/bin/sh PROJDIR="/home/hqmank/www/xindico" PIDFILE="$PROJDIR/web.pid" SOCKET="$PROJDIR/web.sock" cd $PROJDIR if [ -f $PIDFILE ]; then kill cat -- $PIDFILE rm -f — $PIDFILE fi exec /usr/bin/env - PYTHONPATH="../python:.." ./manage.py runfcgi socket=$SOCKET pidfile=$PIDFILE
restart.sh #!/bin/bash sudo cat web.pid |xargs kill -9 ; rm -rf web.pid ;sudo killall python;sudo ./runfastcgi ;sudo chown www-data.www-data web.sock
在ubuntu 上部署的话 不要忘记 装这些 python包
python-mysqldb python-flup python-imaging
参考了:
http://rfc1437.de/page/django-lighttpd-and-fcgi-second-take/
http://www.maniacmartin.com/2008/8/8/migrating-django-and-cherrypy-to-lighttpd/