Une rapide recherche avec yum et c'est la déception :

 # yum search moin
 ...
 ================================= Matched: moin =================================
 lx.x86_64 : Converts PBM data to Lexmark 1000 printer language
 #

Il faut donc se résoudre à travailler à l'ancienne à partir de l'archive tgz. Le site de référence est alors la principale source d'information : http://moinmo.in/ J'ai ensuite travaillé avec la version 1.9.4 de moin moin et le HowTo Quick MoinMoin on CentOS qui s'approche sûrement le plus de ce que je vais rencontrer sur la RHEL.


Pré-requis

Je travaille sur RHEL 6 x86_64 sur laquelle apache 2.2.x et python dans mon cas 2.6.x sont déjà présents. Je vais ajouter mod_wsgi pour servir des applications web basées sur python :

 # yum install mod_wsgi
 ...
   Installed:
   mod_wsgi.x86_64 0:3.2-1.el6                                                                                                                                
 Complete!
 #


Installation MoinMoin

Je me place dans un répertoire MoinMoinWiki dans mon home qui servira de base à l'installation et je travaille en tant que root.

 # wget http://static.moinmo.in/files/moin-1.9.4.tar.gz
 # tar xzvf moin-1.9.4.tar.gz
 # cd moin-1.9.4
 # ls -rtl
 total 72
 -rw-rw-r--  1 1000 1000  1025  7 févr. 22:36 MANIFEST.in
 -rw-rw-r--  1 1000 1000 13704  7 févr. 22:36 setup.py
 -rw-rw-r--  1 1000 1000   238  7 févr. 22:36 setup.cfg
 -rw-rw-r--  1 1000 1000  2458  7 févr. 22:36 README
 -rw-rw-r--  1 1000 1000  1992  7 févr. 22:36 moin.spec
 -rwxrwxr-x  1 1000 1000  1251  7 févr. 22:36 wikiserver.py
 -rw-rw-r--  1 1000 1000   818  7 févr. 22:36 wikiserverlogging.conf
 -rw-rw-r--  1 1000 1000  3087  7 févr. 22:36 wikiserverconfig.py
 -rw-rw-r--  1 1000 1000  2259  7 févr. 22:36 wikiconfig.py
 drwxrwxr-x  6 1000 1000  4096  7 févr. 22:39 wiki
 -rw-rw-r--  1 1000 1000  3203  7 févr. 22:39 PKG-INFO
 drwxrwxr-x 29 1000 1000  4096  7 févr. 22:39 MoinMoin
 drwxrwxr-x  3 1000 1000  4096  7 févr. 22:39 jabberbot
 drwxrwxr-x  3 1000 1000  4096  7 févr. 22:39 docs
 drwxrwxr-x 10 1000 1000  4096  7 févr. 22:39 contrib
 #

On remarque le répertoire docs et notamment docs/README_FIRST qui est la source d'information pour les détails sur l'installation et enfin on lance l'installation au moyen du script python setup.py :

 #python setup.py install --force --prefix /usr/local --record=install.log


Configuration du serveur

 # cd /usr/local/share/moin/
 # ls -rtl
 total 16
 drwxr-xr-x 5 root root 4096  5 juil. 11:55 config
 drwxr-xr-x 3 root root 4096  5 juil. 11:55 underlay
 drwxr-xr-x 2 root root 4096  5 juil. 11:55 server
 drwxr-xr-x 7 root root 4096  5 juil. 11:55 data
 #

On copie le répertoire /usr/local/share/moin et sa sous-arborescence dans un dossier spécifique à l'instance que l'on veut créer par exemple /appli/wikis/da/ (étape facultative) :

 # cp -pR /usr/local/share/moin /appli/wikis/da/

On active les fichiers de configuration en les copiant dans le dossier père :

 # cd /appli/wikis/da/moin
 # cp server/moin.wsgi .
 # cp config/wikiconfig.py .


Le VirtualHost apache

Il nous faut maintenant modifier la configuration apache :

 # cd /etc/httpd/conf

après une petite sauvegarde du httpd.conf on peut l'éditer pour ajouter en fin de fichier :

 #
 #  MoinMoin WSGI configuration
 #
 <VirtualHost wiki-da.mondomaine.fr:80>
    ServerName wiki-da.mondomaine.fr
    ServerAdmin admin@wiki-da.mondomaine.fr
    LoadModule wsgi_module modules/mod_wsgi.so
    # you will invoke your moin wiki at the root url, like http://wiki-da.mondomaine.fr/FrontPage:
    WSGIScriptAlias /   /usr/local/share/moin/moin.wsgi
    # create some wsgi daemons - use user/group same as your data_dir:
    WSGIDaemonProcess moin user=apache group=apache processes=5 threads=10 maximum-requests=1000 umask=0007
    # use the daemons we defined above to process requests!
    WSGIProcessGroup moin
    # WSGISocketPrefix
    WSGISocketPrefix /var/run/moin-wsgi
 </VirtualHost>

Ne pas oublier de demande à Apache d'écouter sur le port sur lequel on a configuré le VirtualHost.


Le mod_wsgi

On édite :

 # vim /appli/wikis/da/moin/moin.wsgi

Pour y ajouter les lignes suivantes :

* paragraphe a1) :
 sys.path.insert(0, '/usr/local/lib/python2.6/site-packages')
* paragraphe a2) :
 sys.path.insert(0, '/appli/wikis/da/moin')

On doit ensuite penser à ajuster les droits :

 # cd /usr/local/share
 # chown -R apache:apache moin
 # chmod -R 0770 moin

et de la même façon pour /appli/wikis/da/moin.

On redémarre apache avant de tester voir si tout cela a servi à quelque chose :

 # /etc/init.d/httpd restart


Configuration de base de l'application MoinMoin

Dans le fichier /appli/wikis/da/moin/wikiconfig.py on décommente les lignes suivantes :

 vim wikiconfig.py

Pour activer l'affichage de la page d'accueil du wiki :

 page_front_page = u"FrontPage"

Pour déterminer le compte administrateur fonctionnel :

 superuser = [u"WikiAdmin", ]

Pour que les modifications soient prises en compte il faut sauvegarder le fichier et relancer le serveur apache.


Ajouter une authentification basée sur un LDAP

Je m'appuie sur la documentation fournie sur le site officiel : http://moinmo.in/HelpOnAuthentication qui décrit différents mécanisme d'authentification dont un travaille avec la classe MoinMoin.auth.ldap_login.LDAPAuth.