Module modfastcgi
source code
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
-
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.
-
Apache does not allow custom HTTP methods like CONNECT as per the
spec. See test_core.testHTTPMethods.
-
Max request header and body settings do not work with Apache.
-
Apache replaces status "reason phrases" automatically.
For example, CherryPy may set "304 Not modified" but
Apache will write out "304 Not Modified" (capital
"M").
-
Apache does not allow custom error codes as per the spec.
-
Apache (or perhaps modpython, or modpython_gateway) unquotes %xx in
the Request-URI too early.
-
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).
-
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.
|
curdir = ' /build/buildd/cherrypy3-3.2.2/cherrypy/test '
|
|
APACHE_PATH = ' apache2ctl '
|
|
CONF_PATH = ' fastcgi.conf '
|
|
conf_fastcgi = ' \n# Apache2 server conf file for testing Cherr ...
|
|
__package__ = ' cherrypy.test '
|
conf_fastcgi
- Value:
'''
# 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"
...
|
|