From 225ec8d44fd17210fe5a8369475286991fd1a3ab Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 8 Oct 2010 11:37:57 +0200 Subject: Initial commit --- moin.fcgi | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 moin.fcgi (limited to 'moin.fcgi') diff --git a/moin.fcgi b/moin.fcgi new file mode 100755 index 0000000..c15d47d --- /dev/null +++ b/moin.fcgi @@ -0,0 +1,88 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +""" + MoinMoin - CGI/FCGI Driver script + + @copyright: 2000-2005 by Juergen Hermann , + 2008 by MoinMoin:ThomasWaldmann, + 2008 by MoinMoin:FlorianKrupicka, + 2010 by MoinMoin:RadomirDopieralski + @license: GNU GPL, see COPYING for details. +""" + +import sys, os + +# a) Configuration of Python's code search path +# If you already have set up the PYTHONPATH environment variable for the +# stuff you see below, you don't need to do a1) and a2). + +# a1) Path of the directory where the MoinMoin code package is located. +# Needed if you installed with --prefix=PREFIX or you didn't use setup.py. +#sys.path.insert(0, 'PREFIX/lib/python2.3/site-packages') + +# a2) Path of the directory where wikiconfig.py / farmconfig.py is located. +# See wiki/config/... for some sample config files. +#sys.path.insert(0, '/path/to/wikiconfigdir') +#sys.path.insert(0, '/path/to/farmconfigdir') + + +# b) Configuration of moin's logging +# If you have set up MOINLOGGINGCONF environment variable, you don't need this! +# You also don't need this if you are happy with the builtin defaults. +# See wiki/config/logging/... for some sample config files. +from MoinMoin import log +#log.load_config('/path/to/logging_configuration_file') +logging = log.getLogger(__name__) + +## this works around a bug in flup's CGI autodetection (as of flup 1.0.1): +#os.environ['FCGI_FORCE_CGI'] = 'Y' # 'Y' for (slow) CGI, 'N' for FCGI + +# Creating the WSGI application +# use shared=True to have moin serve the builtin static docs +# use shared=False to not have moin serve static docs +# use shared='/my/path/to/htdocs' to serve static docs from that path +from MoinMoin.web.serving import make_application +app = make_application(shared=False) # <-- adapt here as needed + +# Is fixing the script name needed? +# Use None if your url looks like http://domain/wiki/moin.fcgi +# Use '' if you use rewriting to run at http://domain/ +# Use '/mywiki' if you use rewriting to run at http://domain/mywiki/ +#fix_script_name = '' # <-- adapt here as needed +# +#if fix_script_name is None: +# application = app +#else: +# def script_name_fixer(env, start): +# env['SCRIPT_NAME'] = fix_script_name +# return app(env, start) +# application = script_name_fixer + +from urllib import unquote +def script_name_fixer(env, start): + env['PATH_INFO'] = unquote(env['REQUEST_URI'].split('?', 1)[0]) + env['SCRIPT_NAME'] = '' + return app(env, start) +application = script_name_fixer + +# CGI with Apache2 on Windows (maybe other combinations also) has trouble with +# URLs of non-ASCII pagenames. Use True to enable middleware that tries to fix. +fix_apache_win32 = False # <-- adapt here as needed + +if fix_apache_win32: + from werkzeug.contrib.fixers import PathInfoFromRequestUriFix + application = PathInfoFromRequestUriFix(application) + + +## Choose your server mode (threaded, forking or single-thread) +try: + # v-- adapt here as needed + from flup.server.fcgi import WSGIServer +# from flup.server.fcgi_fork import WSGIServer +# from flup.server.fcgi_single import WSGIServer +except ImportError: + logging.warning("No flup-package installed, only basic CGI support is available.") + from MoinMoin.web._fallback_cgi import WSGIServer + +WSGIServer(application).run() + -- cgit v1.2.3