Voodoo is not for newbies!
This page gives some nice but advanced tricks for a moin apache setup. The directives on this page assume that you have knowledge about apache configuration, newbies should stick to the basic setup.
Apache Root Wiki
This requires an apache including mod_rewrite (which should be standard)
An apache root wiki is a easy thing, but it has its 'edges': cause moin needs to access certain static files (images, css, etc.) its steals a part of the possible WikiName namespace.
- Install moin as normal.
Put all static files into one distinct path below your docroot. In this example we call it _static.
Edit wikiconfig to reflect the place of the static files. This normally means to change url_prefix.
Add the following lines to your apache (vhost?) config:
RewriteEngine On RewriteLogLevel 0 ## if URL starts with our static prefix, don't change and abort RewriteRule ^/_static - [last] ## static files are somewhere else? ok... # RewriteRule ^/_static(.*)$ /path/to/static$1 [last] ## map everything else to moin.cgi/moin.fcg RewriteRule ^(.*)$ /path/to/moin.cgi$1 [type=application/x-httpd-cgi] # RewriteRule ^(.*)$ /path/to/moin.fcg$1 [type=application/x-httpd-fcgi]
The RewriteRule for FastCGI here does not work for me:
[Wed Jan 05 01:43:41 2005] [error] [client 10.0.0.1] File does not exist: /home/apache/moin/wiki/share/moin/pw/moin.fcg/RecentChanges, referer: http://moin.dahoam/StartSeite duplo:/home/danielt# ls /home/apache/moin/wiki/share/moin/pw/moin.fcg -rwxr-xr-x 1 root www 1088 Jan 4 23:35 /home/apache/moin/wiki/share/moin/pw/moin.fcg*
As a workaround I use this:
RewriteRule ^/?(.*) /_Wikiscript_/moin.fcg/$1 RewriteRule ^/_Wikiscript_/(.*) /home/apache/moin/wiki/share/moin/pw/$1 [last]
Root wiki with mod python recipe
Using the previous example, I got this working like this:
- Install moin as usual and create instance
- Use this config in httpd.conf
NameVirtualHost 192.115.134.51:80 <VirtualHost 192.115.134.51:80> ServerName wiki.nirs.dyndns.org ServerAlias wiki # Rewrite urls RewriteEngine On RewriteLogLevel 0 # map static files to htdocs RewriteRule ^/wiki/(.*)$ /usr/share/moin/htdocs/$1 [last] # map everything else to server script RewriteRule ^(.*)$ /usr/share/moin/mywiki/moinmodpy.py$1 <Directory "/usr/share/moin/mywiki"> # These are copied from the default cgi-bin directory AllowOverride None Options None Order allow,deny Allow from all # Modpy stuff AddHandler python-program .py # Add the path to the wiki directory, where moinmodpy.py and # wikiconfig.py are located. PythonPath "['/usr/share/moin/mywiki'] + sys.path" PythonHandler moinmodpy PythonDebug On </Directory> </VirtualHost>
It seems to be impossible to get a root modpy wiki without using the moinmodpy wrapper script.