Installation MARS sur RedHat4 à partir des sources
Installation du serveur MARS au Musées Royaux d'Art et d'Histoire
Choix de l'installation
Deux possibilités:
- A l'aide d'un package
- A partir des sources
Deuxième solution est retenue pour plus de contrôle: Python, Zope et Plone sont indépendants du système et restent stables quelques soient les mises à jour système.
Configuration système requise à la date du 5/4/2006: Python 2.3.5, Zope 2.8.x, Plone 2.1.2
L'application sera installée dans le répertoire /opt sur la machine serveur.
Installation de Python
- Récupération des sources et installation dans
/opt/python2.3.5:# wget http://www.python.org/ftp/python/2.3.5/Python-2.3.5.tgz # tar xzf Python-2.3.5.tgz # cd Python-2.3.5 # ./configure --prefix=/opt/python2.3.5 # make && make install # cd - # rm -r Python-2.3.5 - Installation de PIL (Python Imaging Library):
# wget http://effbot.org/downloads/Imaging-1.1.5.tar.gz # tar xzf Imaging-1.1.5.tar.gz # cd Imaging-1.1.5 # /opt/python2.3.5/bin/python setup.py build_ext -i # /opt/python2.3.5/bin/python setup.py install # cd - # rm -r Imaging-1.1.5
Attention: Sur le système 64 bit, les librairies dont dépend PIL sont situées dans /usr/lib64, il faut éditer le fichier setup.py et ajouter aux environs de la ligne 184 la ligne suivante:
add_directory(library_dirs, "/usr/lib64")
Installation de Zope 2.8.6
- Récupération des sources et installation dans
/opt/zope2.8.6:# wget http://www.zope.org/Products/Zope/2.8.6/Zope-2.8.6-final.tgz # tar xzf Zope-2.8.6-final.tgz # cd Zope-2.8.6-final # ./configure --with-python=/opt/python2.3.5/bin/python --prefix=/opt/zope2.8.6 # make && make install # cd - # rm -rf Zope-2.8.6-final - Création d'un utilisateur pour lancer Zope:
# adduser zope
Attention à retirer le home directory et lui attribuer le shell /sbin/nologin dans /etc/passwd pour qu'il ne puisse pas se loguer.
- Création d'une instance de Zope:
# cd /data # mkdir zope # mkdir zope/2.8 # cd zope/2.8/ # mkdir instance # chown -R zope:zope /data/zope # cd instance # /opt/zope2.8.6/bin/mkzopeinstance.py
Donner les infos demandées par le script, le nom de l'instance ici est mars.
Donner les droits de lecture-écriture à l'utilisateur zope pour la nouvelle instance :
# chown -R zope:zope mars
Modifier dans mars/etc/zope.conf la directive effective-user pour lui attribuer l'utilisateur zope.
Lancer l'instance en avant plan (mode debug) pour vérifier qu'elle fonctionne:
# mars/bin/zopectl fg
Installation de Plone
Pour des questions d'organisation, nous faisons le choix de stocker les produits pour Zope de manière centralisée, puis de les attribuer aux différentes instances (voire à une seule le cas échéant) à l'aide de la directive products du fichier etc/zope.conf.
Récupération des source et installation de Plone dans le dossier des produits:
# mkdir product
# mkdir product/tarball
# mkdir product/svn
# mkdir product/devel
# mkdir product/mars
# cd product/tarball
# chown -R zope:zope /data/zope
# cd
# wget http://heanet.dl.sourceforge.net/sourceforge/plone/Plone-2.1.2.tar.gz
# cd -
# cd product/tarball
# tar xzf /root/Plone-2.1.2.tar.gz
# chown -R zope:zope Plone-2.1.2
Ajouter une directive products dans etc/zope.conf de l'instance.
Installation de TextIndexNG2
Attention aux dépendances, cf http://opensource.zopyx.biz/OpenSource/TextIndexNG/HelpCenter/howto/converters
lien utile pour wvWare: http://repo.nrpms.net/wv/1.0.3/RPMS/wv-1.0.3-2.1.fc4.nr.x86_64.rpm
- rappatriement des sources et installation:
# cd # wget http://heanet.dl.sourceforge.net/sourceforge/textindexng/TextIndexNG-2.2.0.tar.gz # cd - # mkdir TextIndexNG-2.2.0 # cd TextIndexNG-2.2.0 # tar xzf /root/TextIndexNG-2.2.0.tar.gz # cd - # chown -R zope:zope TextIndexNG-2.2.0 # cd TextIndexNG-2.2.0/TextIndexNG2 # /opt/python2.3.5/bin/python setup.py install - Ajouter la directive
productsdansetc/zope.confpour le nouveau produit
Installation des autres produits dont dépend l'application MARS
procédure par défaut: décompactage dans /data/zope/2.8/product puis lien dans etc/zope.conf de l'instance.
Attention à ne pas oublier d'installer normalizer (le module python)