Open WPS Platform

CentOS

Authors:Nicolas Bozon, Gérald Fenoy, Jeff McKenna
Last Updated:$Date: 2011-12-07 14:44:57 +0100 (Wed, 07 Dec 2011) $

Note

Cette documentation a été créée grâce à Guillaume Sueur de Neogeo Technologies qui a pris le temps de tester l’installation du ZOO-Kernel sur un environnement CentOS 5.5.

Prérequis

Installez quelques outils standards pour être capable de faire fonctionner le ZOO-Kernel sur votre plateforme :

yum install apache2
yum install build-essentials
yum install gcc-c++
yum install zlib-devel
yum install libxml2-devel
yum install bison
yum install openssl
yum install python-devel
yum install subversion

Compilez puis installez la bibliothèque FastCGI depuis les sources

wget http://www.fastcgi.com/dist/fcgi.tar.gz
tar xzf fcgi-2.4.0.tar.gz
./configure
make
make install
echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf
ldconfig

Compilez puis installez les outils autoconf :

wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar xzf autoconf-latest.tar.gz
./configure --prefix=/usr
make
make install

Compilez puis installez l’outil flex :

wget http://downloads.sourceforge.net/project/flex/flex/flex-2.5.35/flex-2.5.35.tar.gz?r=http%3A%2F%2Fflex.sourceforge.net%2F&ts=1292529005&use_mirror=switch
tar xzf flex-2.5.35.tar.gz
cd flex-2.5.35
./configure --prefix=/usr
make
make install

L’utilisation du curl fournit par la distribution CentOS produira un ZOO-Kernel incapable de faire fonctionner n’importe quel service. En effet, des erreurs de segmentation ont lieu quand on essaye de lancer des requêtes Execute sur le ZOO-Kernel. La compilation du ZOO-Kernel en configurant le flag USE_GDB dans les CFLAGS de votre Makefile vous permettra de lancer votre ZOO-Kernel depuis gdb et d’être capable d’avoir plus d’informations sur ce qui ne fonctionne pas correctement avec votre ZOO-Kernel. En faisant cela, nous pouvons déduire que le code sur la ligne 173 et la ligne 175 doit être commenté dans le fichier ulinet.c pour avoir un ZOO-Kernel fonctionnel en utilsant le curl disponible dans CentOS (curl version 7.15.5). Si vous n’appliquez pas la modification, vous aurez une erreur depuis la session gdb pointant une segfault dans Curl_cookie_clearall.

Vous pouvez optionnellement compiler et installer curl depuis les sources:

wget http://curl.haxx.se/download/curl-7.21.3.tar.bz2
tar xjf curl-7.21.3.tar.bz2
cd curl-7.21.3
./configure --prefix=/usr
make
make install

Compilez puis installez Python :

wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2
tar xjf Python-2.6.6.tar.bz2
cd Python-2.6.6
./configure
make
make install

Compilez puis installez votre propre bibliothèque GDAL :

wget http://download.osgeo.org/gdal/gdal-1.7.3.tar.gz
tar xzf gdal-1.7.3.tar.gz
cd gdal-1.7.3
./configure  # add your options here
make
make install

Installez le SDK JAVA Sun dans /usr/share puis utilisez la commande suivante pour vous assurez que libjvm.so sera trouvé à l’exécution depuis n’importe quel contexte.

echo /usr/share/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client/ >> /etc/ld.so.conf.d/jvm.conf
ldconfig

Compiler le ZOO-Kernel et les ZOO-Services

Compilez puis installez le ZOO-Kernel votre premier ZOO-Services.

En tout premier, compilez la bibliothèque cgic fournie dans l’arborescence des sources SVN:

svn co http://svn.zoo-project.org/svn/trunk zoo-project
cd zoo-project/thirds/cgic206
make

Compilez puis installez le ZOO-Kernel.

cd ../../zoo-kernel
./configure --with-java=/usr/share/jdk1.6.0_23/ --with-python
make zoo_loader.cgi
cp main.cfg /var/www/cgi-bin/
cp  zoo_loader.cgi /var/www/cgi-bin/

Compilez puis déployez votre premier ZOO-ServicesProviders (un simple HelloPy, lignes 1 et 2, et le ServiceProvider OGR base-vect-ops, lignes 3 à 6):

cp ../zoo-services/hello-py/cgi-env/*.zcfg /var/www/cgi-bin/
cp ../zoo-services/hello-py/test_service.py /var/www/cgi-bin/
cd ../ogr/base-vect-ops/
make
cp ./cgi-env/* /var/www/cgi-bin/
vi /var/www/cgi-bin/main.cfg --> set your own informations here

Pour vous assurez que libjvm.so sera trouvé depuis apache, merci de le redémarrer :

/etc/init.d/httpd restart

Tester votre ZOO-Kernel

Testez votre ZOO-Kernel en ligne de commande:

cd /var/www/cgi-bin
./zoo_loader.cgi "request=Execute&service=WPS&version=1.0.0&Identifier=HelloPy&DataInputs=a=Djay"
./zoo_loader.cgi "request=Execute&service=WPS&version=1.0.0&Identifier=Buffer&DataInputs=BufferDistance=1@datat