id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux 1736 [magic-removal] [patch] Add FastCGI support to manage.py jcrasta@… Adrian Holovaty "Deploying a FastCGI django application is rather complicated, especially for first-time users, as there is at least one extra script needed to be deployed along with the application, along with installing the ""flup"" python package usually. The attached patch (made for magic-removal, but it shouldn't be too hard to add this to trunk either) adds a ""runfcgi"" subcommand to manage.py and django-admin.py. Depending on your web-server configuration, running a fastCGI application might be as simple as: {{{ $ ./manage.py runfcgi }}} For more complicated setups, there might be something like this: {{{ $ ./manage.py runfcgi method=prefork socket=/tmp/django.sock pidfile=/var/run/django-fcgi.pid }}} Through the versatality of flup, the FastCGI code can run over the ""standard"" fastCGI file-descriptor, or it can run over a TCP socket, or a unix domain socket (only available on POSIX systems). I've included a help screen, and running 'runfcgi help' will print out the following: {{{ runfcgi: Run this project as a fastcgi application. To do this, the flup package from http://www.saddi.com/software/flup/ is required. Usage: django-admin.py runfcgi --setttings=yourproject.settings [fcgi settings] manage.py runfcgi [fcgi settings] Optional Fcgi settings: (setting=value) host=HOSTNAME hostname to listen on.. port=PORTNUM port to listen on. socket=FILE UNIX socket to listen on. method=IMPL prefork or threaded (default prefork) maxspare=NUMBER max number of spare processes to keep running. minspare=NUMBER min number of spare processes to prefork. maxchildren=NUMBER hard limit number of processes in prefork mode. daemonize=BOOL whether to detach from terminal. pidfile=FILE write the spawned process-id to this file. workdir=DIRECTORY change to this directory when daemonizing Examples: Run a ""standard"" fastcgi process on a file-descriptor (for webservers which spawn your processes for you) $ manage.py runfcgi method=threaded Run a fastcgi server on a TCP host/port $ manage.py runfcgi method=prefork host=127.0.0.1 port=8025 Run a fastcgi server on a UNIX domain socket (posix platforms only) $ manage.py runfcgi method=prefork socket=/tmp/fcgi.sock Run a fastCGI as a daemon and write the spawned PID in a file $ manage.py runfcgi socket=/tmp/fcgi.sock method=prefork \ daemonize=true pidfile=/var/run/django-fcgi.pid }}} If any questions or clarifications are needed, one can reach me by my e-mail or as Crast on #django - James Crasta" enhancement closed Core (Management commands) magic-removal normal fixed Unreviewed 1 0 0 0 0 0