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.
- Installer moin normalement.
Spécifiez url_prefix dans votre wikiconfig.py :
url_prefix = '/_static'
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 :
- Installez moin comme d'habitude et créer une instance
- 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.