2
0
Fork 0
spawns FastCGI processes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Stefan Bühler 778077f69a
replace README with rst formatted one
10 years ago
.gitignore Add autotools support 14 years ago
CMakeLists.txt Add proper build date + fix some warnings 14 years ago
Makefile.am Add autotools support 14 years ago
README.rst replace README with rst formatted one 10 years ago
autogen.sh Add autotools support 14 years ago
config.h.cmake Remove build date from cmake header 14 years ago
configure.ac Add autotools support 14 years ago
pam_limits.c Add proper build date + fix some warnings 14 years ago
spawn-fcgi.1 Initial commit 15 years ago
spawn-fcgi.c Use glib no-return macro 14 years ago

README.rst


Description
-----------

spawn-fcgi prepares the environment for fastcgi applications; it opens a
socket (tcp / unix-domain) on filedescriptor 0, changes uid/gid for process
and unix-domain socket, closes STDIN/STDOUT, ...

Based on spawn-fcgi 1.x from http://redmine.lighttpd.net/projects/spawn-fcgi/wiki,
rewritten, added some extra features:

* use /etc/security/limits.conf for limits

(The other features were backported to the original spawn-fcgi. Unless you
really need this feature it is recommended to stay with the original,
maintained version.)

Includes modified code from the `Linux-PAM <http://www.kernel.org/pub/linux/libs/pam/>`_
project for the limits.

Usage
-----

Examples for daemontools or runit (with lighttpd on debian):

* for php5::

#!/bin/sh

exec 2>&1
exec /usr/bin/spawn-fcgi -s /var/run/lighttpd/php-webuser.sock -n -u webuser -U www-data -l -- /usr/bin/php5-cgi

* for turbogears::

#!/bin/sh

exec 2>&1
cd /var/www/tgapp
exec /usr/bin/spawn-fcgi -s /var/run/lighttpd/tgapp.sock -n -u tg-user -U www-data -- /var/www/tg-app/start-tgapp-fcgi.py prod.cfg

* ``/var/www/tg-app/start-tgapp-fcgi.py``::

#!/usr/bin/env python
import pkg_resources
import cherrypy
import sys

cherrypy.lowercase_api = True

pkg_resources.require("TurboGears")

from cherrypy._cpwsgi import wsgiApp
from flup.server.fcgi import WSGIServer
from os.path import *

import turbogears

if len(sys.argv) > 1:
configfile = sys.argv[1]
elif exists(join(dirname(__file__), "setup.py")):
configfile = "dev.cfg"
else:
configfile = "prod.cfg"

turbogears.update_config(configfile=configfile, modulename="tgapp.config")

from tgapp.controllers import Root

cherrypy.root = Root()

cherrypy.server.start(initOnly=True, serverClass=None)

WSGIServer(application=wsgiApp).run()

License
-------

spawn-fcgi is released under a BSD license, which may be found in the source files:

* `spawn-fcgi.c <http://git.lighttpd.net/spawn-fcgi2.git/tree/spawn-fcgi.c>`_::

Copyright (c) 2004, Jan Kneschke, incremental
All rights reserved.

* `pam_limits.c <http://git.lighttpd.net/spawn-fcgi2.git/tree/pam_limits.c>`_::

Copyright (c) Cristian Gafton, 1996-1997, <gafton@redhat.com>
All rights reserved.