Django

A collection of Django links

[WWW] http://code.djangoproject.com/wiki/DjangoResources

[WWW] http://www.djangosnippets.org/

[WWW] http://trac.studioquattro.biz/djangoutils/

[WWW] http://trac.dedhost-sil-076.sil.at/trac/filebrowser/wiki

[WWW] http://code.google.com/p/diamanda/

[WWW] http://code.djangoproject.com/wiki/DjangoResources

[WWW] http://code.djangoproject.com/wiki/AutoAllApps

[WWW] http://simon.bofh.ms/cgi-bin/trac-django-projects.cgi/wiki/CmsProject

[WWW] http://simon.bofh.ms/cgi-bin/trac-django-projects.cgi/wiki/DjangoStuff

Wiki and Mediawiki markup

[WWW] http://e-scribe.com/news/171

[WWW] http://www.djangosnippets.org/snippets/139/

Starting Django as a FastCGI server

Install Flup [WWW] http://www.saddi.com/software/flup/

wget http://www.saddi.com/software/flup/dist/flup-1.0.tar.gz
tar xvzf flup-1.0.tar.gz
cd flup-1.0
python setup.py install

Install mod_fastcgi [WWW] http://www.fastcgi.com/dist/ [WWW] http://www.fastcgi.com/mod_fastcgi/INSTALL

wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
tar xvzf mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/usr/lib64/httpd
make top_dir=/usr/lib64/httpd install

Alternatively if it can be built on a separate host:

cp mod_fastcgi-2.4.6/.libs/mod_fastcgi.so /usr/lib64/httpd/modules/

/etc/httpd/conf/httpd.conf:

LoadModule fastcgi_module modules/mod_fastcgi.so

Startup Script

# django             django fastcgi server
#
# chkconfig: 2345 80 30
# description: django server

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network

PYTHON=/usr/bin/python2.4

PROJECTNAME=user
USER=user
SCRIPTNAME=/etc/init.d/django-$PROJECTNAME
INSTANCE_HOME=/home/user/public_html
PIDFILE=$INSTANCE_HOME/django-$PROJECTNAME.pid
LOCKFILE=$INSTANCE_HOME/django-$PROJECTNAME.lock

RETVAL=0

start() {
        daemon --user=$USER "cd $INSTANCE_HOME ; \
               $PYTHON manage.py runfcgi method=prefork \
               host=127.0.0.1  port=9092 \
               maxrequests=50 maxchildren=8 maxspare=3 minspare=1 \
               pidfile=$PIDFILE"
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch $LOCKFILE
}

stop() {
        if [ -f $PIDFILE ]
        then
            kill `cat $PIDFILE`  && rm -f $LOCKFILE
        fi
}

case "$1" in
        start)
            start
        ;;
        stop)
            stop
        ;;
        restart)
            stop
            start
            RETVAL=$?
        ;;
        status)
            echo "No status info for $PROJECTNAME"
        ;;
        *)
            echo "Usage: $SCRIPTNAME {start|stop|restart|status}" >&2
            exit 1
esac

exit 0

vhost configuration (one of the following):

<IfModule mod_fastcgi.c>
# Connect to FastCGI via a socket / named pipe.
FastCGIExternalServer /home/user/public_html/mysite.fcgi -socket /home/user/mysite.sock

# Connect to FastCGI via a TCP host/port.
FastCGIExternalServer /home/user/public_html/mysite.fcgi -host 127.0.0.1:3033
</IfModule>

FastCGIExternalServer /home/user/public_html/mysite.fcgi -host 127.0.0.1:3033

Alias /media /usr/lib/python2.4/site-packages/django/contrib/admin/media

RewriteEngine On
RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
RewriteRule ^/static_media/(.*)$ /home/user/public_html/static_media/$1 [L]
RewriteRule ^/(.*)$ /home/user/public_html/mysite.fcgi/$1 [QSA,L]


last edited 2007-12-20 18:39:56 by MichaelBest