Requirements

  1. Existing installation of Apache 1 or Apache 2 web server
  2. Existing installation of Standalone or Twisted server as explained in HelpOnInstalling.

Integrating with Apache 2

Standalone or Twisted setup

If you want to use Twisted, edit mointwisted.py and set these options:

    port = 8000
    interfaces = ['localhost']

If you want to use Standalone, edit standalone.py and set these options:

    port = 8000
    interface = 'localhost'

Now run your moin server and check that it works at http://localhost:8000.

Apache 2 setup

This setup requires mod_proxy and mod_headers. Make sure they are installed and loaded before you continue.

Edit your Apache configuration file, either httpd.conf or an included configuration file:

# Can be off for reverse proxying, more secure
ProxyRequests Off

Alias /moin_static160/ "/usr/share/moin/htdocs/"

<Location /exwiki/>
    ProxyPass http://localhost:8000/
    ProxyPassReverse http://localhost:8000/
    RequestHeader set X-Moin-Location /exwiki/
</Location>

Now restart Apache and test your wiki at http://localhost/exwiki/ or http://www.example.com/exwiki/

This setup was tested on Mac OS X.

On Debian Sarge, the default Apache configuration denies all proxy access, so at least the following should be added:

<Proxy http://localhost:8080/>
  Order deny, allow
  Allow from all
</Proxy>

Integrating with Apache 1

Standalone or Twisted setup

If you want to use Twisted, edit mointwisted.py and set these options:

    properties = {'script_name': '/mywiki', 'http_host': 'yourdomain'}
    port = 8000
    interfaces = ['localhost']

If you want to use Standalone, edit standalone.py and set these options:

    properties = {'script_name': '/mywiki', 'http_host': 'yourdomain'}
    port = 8000
    interface = 'localhost'

Apache 1 setup

This setup requires mod_proxy. Make sure it's installed and loaded before you continue.

Edit your Apache configuration file, either httpd.conf or an included configuration file:

# Can be off for reverse proxying, more secure
ProxyRequests Off

Alias /moin_static160/ "/usr/share/moin/htdocs/"

<Location /exwiki>
    ProxyPass http://localhost:8000/
    ProxyPassReverse http://localhost:8000/
</Location>

Now restart Apache and test your wiki at http://www.example.com/exwiki/

Farm configuration

When running Twisted or Standalone without a proxy, the wiki url contain the server name (and sometimes also the port) and the page name. For example: localhost:8000/pagename.

However, when running behind a proxy, the wiki url contain the proxy host, not the server name, and may include a "script_name". In this case, the wiki that run on localhost:8000 might have a url of www.example.com/exwiki/pagename when you access it through the proxy, and localhost:8000/pagename when you access it locally.

If you want to use same configuration file for both local and world access, use settings like this in your farmconfig.py:

wikis = [('exwiki', r'^(localhost:8000|www.example.com/exwiki).*')]

If you want to have different configuration for local and world access:

wikis = [('exwiki_local', r'^localhost:8000.*'),
         ('exwiki_world', r'^www.example.com/exwiki.*'),]

Disabling host rewriting

If you want to disable the new transparent host rewriting, override http_host in your server script:

    properties = {'http_host': 'hostname'}