Module Expr Str Import alias Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Import alias Import alias Import alias Import alias ImportFrom alias alias ImportFrom alias FunctionDef arguments args NameParam NameParam defaults Str body Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr BinOpMod Str TupleLoad NameLoad NameLoad TryFinally body Assign NameStore Call AttributeLoad NameLoad attr If Call AttributeLoad NameLoad attr Str NameLoad AttributeLoad NameLoad attr body Raise Call NameLoad BinOpMod Str NameLoad Assign NameStore BinOpAdd NameLoad Call AttributeLoad NameLoad attr finalbody Expr Call AttributeLoad NameLoad attr Return NameLoad decorator_list Assign NameStore Str Assign NameStore Str Assign NameStore Str FunctionDef arguments args NameParam NameParam defaults body Assign SubscriptStore NameLoad Index Str Str Return Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list ClassDef bases AttributeLoad NameLoad attr body Assign NameStore Str Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore NameLoad FunctionDef arguments args NameParam defaults body Return BinOpMod Str TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign AttributeStore AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr keyword NameLoad keyword TupleLoad Str Num Assign AttributeStore AttributeLoad AttributeLoad NameLoad attr attr attr TupleLoad Str Num Assign AttributeStore AttributeLoad NameLoad attr attr Num Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore NameLoad If UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Str TryFinally body Assign NameStore SubscriptLoad Call NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Str Slice Num Num Assign NameStore BinOpMod AttributeLoad NameLoad attr Dict Str Str Str AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad finalbody Expr Call AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad BinOpMod Str NameLoad If NameLoad body Print NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call NameLoad NameLoad Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign AttributeStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr attr Call AttributeLoad NameLoad attr NameLoad decorator_list decorator_list
N/A N/A Wrapper for mod_fastcgi, for use as a CherryPy HTTP server when testing.

To autostart fastcgi, the "apache" executable or script must be
on your system path, or you must override the global APACHE_PATH.
On some platforms, "apache" may be called "apachectl", "apache2ctl",
or "httpd"--create a symlink to them if needed.

You'll also need the WSGIServer from flup.servers.
See http://projects.amor.org/misc/wiki/ModPythonGateway


KNOWN BUGS
==========

1. Apache processes Range headers automatically; CherryPy's truncated
    output is then truncated again by Apache. See test_core.testRanges.
    This was worked around in http://www.cherrypy.org/changeset/1319.
2. Apache does not allow custom HTTP methods like CONNECT as per the spec.
    See test_core.testHTTPMethods.
3. Max request header and body settings do not work with Apache.
4. Apache replaces status "reason phrases" automatically. For example,
    CherryPy may set "304 Not modified" but Apache will write out
    "304 Not Modified" (capital "M").
5. Apache does not allow custom error codes as per the spec.
6. Apache (or perhaps modpython, or modpython_gateway) unquotes %xx in the
    Request-URI too early.
7. mod_python will not read request bodies which use the "chunked"
    transfer-coding (it passes REQUEST_CHUNKED_ERROR to ap_setup_client_block
    instead of REQUEST_CHUNKED_DECHUNK, see Apache2's http_protocol.c and
    mod_python's requestobject.c).
8. Apache will output a "Content-Length: 0" response header even if there's
    no response entity body. This isn't really a bug; it just differs from
    the CherryPy default.
 N/A os N/A curdir N/A N/A N/A os path join N/A N/A os getcwd N/A N/A N/A os path dirname __file__ N/A re N/A sys N/A time N/A cherrypy cherrypy.process plugins servers cherrypy.test helper read_process N/A N/A cmd args N/A N/A N/A N/A pipein pipeout N/A N/A os popen4 N/A %s %s N/A cmd args N/A N/A N/A firstline N/A N/A pipeout readline N/A N/A N/A re search (not recognized|No such file|not found) firstline N/A re IGNORECASE N/A N/A N/A IOError N/A %s must be on your system path. cmd N/A output N/A firstline N/A N/A pipeout read N/A N/A N/A N/A pipeout close N/A output N/A N/A APACHE_PATH apache2ctl N/A CONF_PATH fastcgi.conf N/A conf_fastcgi 
# Apache2 server conf file for testing CherryPy with mod_fastcgi.
# fumanchu: I had to hard-code paths due to crazy Debian layouts :(
ServerRoot /usr/lib/apache2
User #1000
ErrorLog %(root)s/mod_fastcgi.error.log

DocumentRoot "%(root)s"
ServerName 127.0.0.1
Listen %(port)s
LoadModule fastcgi_module modules/mod_fastcgi.so
LoadModule rewrite_module modules/mod_rewrite.so

Options +ExecCGI
SetHandler fastcgi-script
RewriteEngine On
RewriteRule ^(.*)$ /fastcgi.pyc [L]
FastCgiExternalServer "%(server)s" -host 127.0.0.1:4000
 erase_script_name N/A N/A environ start_response N/A N/A N/A N/A environ N/A SCRIPT_NAME N/A N/A N/A cherrypy tree environ start_response N/A ModFCGISupervisor N/A N/A helper LocalWSGISupervisor N/A N/A httpserver_class cherrypy.process.servers.FlupFCGIServer N/A using_apache True N/A using_wsgi True N/A template conf_fastcgi __str__ N/A N/A self N/A N/A N/A N/A FCGI Server on %s:%s N/A N/A self host N/A self port N/A start N/A N/A self modulename N/A N/A N/A N/A N/A cherrypy server httpserver N/A N/A servers FlupFCGIServer application erase_script_name bindAddress N/A 127.0.0.1 4000 N/A N/A N/A N/A cherrypy server httpserver bind_addr N/A 127.0.0.1 4000 N/A N/A N/A cherrypy server socket_port 4000 N/A N/A N/A self start_apache N/A N/A N/A N/A cherrypy engine start N/A N/A N/A self sync_apps N/A start_apache N/A N/A self N/A N/A N/A fcgiconf CONF_PATH N/A N/A N/A N/A N/A os path isabs fcgiconf N/A N/A fcgiconf N/A N/A N/A os path join curdir fcgiconf N/A f N/A open fcgiconf wb N/A N/A N/A server N/A N/A repr N/A N/A N/A os path join curdir fastcgi.pyc N/A 1 -1 N/A output N/A N/A self template N/A port root server N/A self port curdir server N/A output N/A N/A output replace N/A N/A N/A f write output N/A N/A N/A N/A f close N/A result N/A read_process APACHE_PATH N/A -k start -f %s fcgiconf N/A result N/A N/A result N/A stop N/A N/A self N/A N/A N/A Gracefully shutdown a server that is serving forever. N/A N/A read_process APACHE_PATH -k stop N/A N/A N/A N/A helper LocalWSGISupervisor stop self N/A sync_apps N/A N/A self N/A N/A N/A N/A N/A N/A N/A cherrypy server httpserver fcgiserver application N/A N/A self get_app erase_script_name N/A N/A