/!\ Le voodoo n'est pas pour les nouveaux venus !

Cette page donne quelques bon trucs, mais des trucs évolués pour une configuration de moin avec Apache. Les directives de cette page supposent que vous avez les connaissances requises pour configurer Apache, les nouveaux venus devraient rester à la configuration de base.

Wiki racine et Apache

/!\ Cela requiert d'avoir Apache avec le mod_rewrite chargé (ce qui devrait être le cas par défaut).

Avoir un wiki racine et Apache est une chose facile, mais comporte quelques difficultés : car moin doit avoir accès à certains fichiers statiques (images, css, etc.) auxquels il n'accède plus directement lorsqu'il est derrière un serveur web.

  1. Installer moin normalement.
  2. Spécifiez url_prefix dans votre wikiconfig.py :

    •     url_prefix = '/_static'
  3. Ajouter les lignes suivantes à votre configuration d'Apache (ou de VirtualHost) :

    •   RewriteEngine On
        RewriteLogLevel 0
        
        # Pointe vers le fichiers statiques de moin 
        RewriteRule ^/_static/(.*)$ /prefix/share/moin/htdocs/$1 [last]
        
        # Renvoyer toutes les autres requêtes vers le script cgi de moin
        RewriteRule ^(.*)$ /path/to/moin.cgi$1 [type=application/x-httpd-cgi]
        
        # Configuration pour FastCGI
        ##RewriteRule ^(.*)$ /path/to/moin.fcg$1 [type=application/x-httpd-fcgi]

Le RewriteRule pour FastCGI ne marche pas chez moi :

[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*

Comme contournement j'utilise ceci :

  RewriteRule ^/?(.*) /_Wikiscript_/moin.fcg/$1
  RewriteRule ^/_Wikiscript_/(.*) /home/apache/moin/wiki/share/moin/pw/$1 [last]

Wiki racine sur Mac OS X

/!\ Cette configuration intercepte toutes les URL des répertoires personnels des utilisateurs comme par exemple http://127.0.0.1/~votrenom/ et propose à la pace une page wiki vierge, ces instructions ne sont données qu'à titre d'exercice. Il y a peut-être une solution contournant ce problème, mais elle m'est inconnue.

En utilisant précédemment les informations sur l'installation de moin sur OS X, on obtient au final la configuration de virtal host suivante :

<VirtualHost *>
   ServerName Gnarlodious
   Alias /moin_static160/ /usr/local/share/moin/htdocs/
   ScriptAlias /mywiki /usr/local/share/moin/mywiki/moin.cgi
   RewriteEngine On
   RewriteRule ^/moin_static160/(.*)$ /usr/local/share/moin/htdocs/$1 [last]
   RewriteRule ^(.*)$ /usr/local/share/moin/mywiki/moin.cgi$1 [type=application/x-httpd-cgi]
</VirtualHost> 

Enlevez les directives suivantes de <IfModule mod_alias.c> qui ont été ajoutées sur cette page, car elles sont désormais redondantes avec ce qui précède :

    Alias /moin_static160/ "/moinwiki/share/moin/htdocs/"
    ScriptAlias /mywiki "/moinwiki/share/moin/mywiki/moin.cgi"

Redémarrez Apache. Vous devriez pouvour accéder à une URL du type http://127.0.0.1/HelpOnInstalling/ApacheOnMacOsx

Recette du wiki racine et mod_python

En utilisant l'exemple précédent, j'ai pu le faire tourner avec ceci :

  1. Installez moin comme d'habitude et créer une instance
  2. Utilisez la configuration suivante dans httpd.conf
    • NameVirtualHost 192.115.134.51:80
      <VirtualHost 192.115.134.51:80>
          ServerName wiki.nirs.dyndns.org
          ServerAlias wiki
          
          # Réécrire les urls
          RewriteEngine On
          RewriteLogLevel 0
          # Pointe vers le fichiers statiques de moin
          RewriteRule ^/wiki/(.*)$ /usr/share/moin/htdocs/$1 [last]
          # Renvoyer toutes les autres requêtes vers le script
          RewriteRule ^(.*)$ /usr/share/moin/mywiki/moinmodpy.py$1
      
          <Directory "/usr/share/moin/mywiki">
              # Ceci est copié de la configuration par défaut du répertoire cgi-bin
              AllowOverride None
              Options None
              Order allow,deny
              Allow from all
      
              # Configuration de mod_python
              AddHandler python-program .py
              # Ajouter le chemin du wiki où se trouve moinmodpy.py et wikiconfig.py
              PythonPath "['/usr/share/moin/mywiki'] + sys.path"
              PythonHandler moinmodpy
              PythonDebug On 
          </Directory>
      </VirtualHost>

(!) Il semble impossible d'avoir un wiki racine avec mod_python sans utiliser le script moinmodpy.