[HOME]: [Mac OS X]: [MacPython]: [Emacs]: [生存報告記]: [MacEmacs JP Project]: [NTEmacs JP Project]:

/!\ 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.

  1. Install moin as normal.
  2. Set url_prefix in your wikiconfig.py:

    •     url_prefix = '/_static'
      
  3. Add the following lines to your apache (vhost?) config:
    •   RewriteEngine On
        RewriteLogLevel 0
        
        # Point to moin shared static files
        RewriteRule ^/_static/(.*)$ /prefix/share/moin/htdocs/$1 [last]
        
        # Map everything else to moin cgi script
        RewriteRule ^(.*)$ /path/to/moin.cgi$1 [type=application/x-httpd-cgi]
        
        # Setting for FastCGI
        ##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:

  1. Install moin as usual and create instance
  2. 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.