Déploiement de ROK4

ROK4 peut être déployé de plusieurs manières.

Il est, par défaut, pensé pour être un serveur statique FastCGI interfacable avec un serveur HTTP traditionnel.

Il expose également une API en C permettant son intégration en tant que module au sein de serveur HTTP (NGINX,etc.).

Exemple d’utilisation avec Apache2

Installation d’Apache2

sudo apt-get install apache2

L’ensemble des fichiers de configuration sont installés par défaut dans le répertoire /etc/apache2

On propose ci-dessous deux possibilités de déploiement du serveur ROK4 avec Apache2.

Solution 1 : Mise en oeuvre avec mod_fcgid

Installation de mod_fcgid

sudo apt-get install libapache2-mod-fcgid

Activation du mod_fcgid

sudo a2enmod fcgid

Configuration du VirtualHost

Dans la configuration du VirtualHost Apache2  ajouter les lignes suivantes

ScriptAlias /fcgid/ /opt/rok4/bin/

<Directory "/opt/rok4/bin/">
SetHandler fcgid-script
Options +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Mise en route du serveur

Lancer Apache

sudo apache2ctl restart

Le service WMS est disponible à l’adresse suivante :
http://localhost/fcgid/rok4?request=GetCapabilities&service=WMS

Le service WMTS est disponible à l’adresse suivante :
http://localhost/fcgid/rok4?request=GetCapabilities&service=WMTS

Les logs du service sont disponibles par défaut (voir server.conf) dans le dossier /var/tmp

Solution 2 : Mise en oeuvre avec mod_fastcgi

Installation de mod_fastcgi

Le code source du module mod_fastcgi est disponible ICI.

Installer les paquets nécessaires pour compiler le module :

sudo apt-get install apache2-dev

Récupérer et dézipper le module

wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
tar -zxvf  mod_fastcgi-2.4.6.tar.gz
cd  mod_fastcgi-2.4.6

Copier le Makefile template

cp Makefile.AP2 Makefile

Modifier le Makefile pour le faire correspondre à votre système :

<div>#</div>
<div>#  Makefile for Apache2</div>
<div>#</div>
<div></div>
<div>builddir     = .</div>
<div></div>
<div># XXX LIGNE A CHANGER LE PLUS SOUVENT</div>
<div>top_dir      = /usr/share/apache2</div>
<div></div>
<div>top_srcdir   = ${top_dir}</div>
<div>top_builddir = ${top_dir}</div>
<div></div>
<div>include ${top_builddir}/build/special.mk</div>
<div></div>
<div>APXS      = apxs</div>
<div>APACHECTL = apachectl</div>
<div></div>
<div>#DEFS=-Dmy_define=my_value</div>
<div>#INCLUDES=-Imy/include/dir</div>
<div>#LIBS=-Lmy/lib/dir -lmylib</div>
<div></div>
<div>all: local-shared-build</div>
<div></div>
<div>clean:</div>
<div>        -rm -f *.o *.lo *.slo *.la</div>
<div></div>

Lancer les commandes de build

make
make install

Le module mod_fastcgi.so devrait désormais être présent dans /usr/lib/apache2/modules

Dans /etc/apache2/mods-enabled créer le fichier mod_fastcgi.load avec le contenu suivant :

LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

Dans /etc/apache2/mods-enabled créer le fichier mod_fastcgi.conf avec le contenu suivant :

&lt;IfModule mod_fastcgi.c&gt;
AddHandler fastcgi-script .fcgi
FastCgiIpcDir /var/lib/apache2/fastcgi
&lt;/IfModule&gt;

Configuration du VirtualHost

Dans la configuration du VirtualHost Apache  ajouter les lignes suivantes

# En supposant que /opt/rok4/ soit le répertoire d'installation
ScriptAlias /fcgi/ /opt/rok4/bin/

&lt;Directory "/opt/rok4/bin/"&gt;
AllowOverride None
Options None
SetHandler fastcgi-script
Order allow,deny
Allow from all
&lt;/Directory&gt;

FastCgiServer /opt/rok4/bin/rok4 -init-start-delay 5 -port 1998 -processes 2

Mise en route du serveur

Lancer Apache

sudo apache2ctl restart

Le service WMS est disponible à l’adresse suivante :
http://localhost/fcgi/rok4?request=GetCapabilities&service=WMS

Le service WMTS est disponible à l’adresse suivante :
http://localhost/fcgi/rok4?request=GetCapabilities&service=WMTS

Les logs du service sont disponibles par défaut (voir server.conf) dans le dossier /var/tmp

 

Exemple d’utilisation avec Nginx

Plutôt que de laisser Nginx gérer le lancement de ROK4 nous allons lancer celui-ci de manière indépendante et déclarer dans Nginx la connexion à cette instance.

Installation de Nginx

sudo apt-get install nginx

L’ensemble des fichiers de configuration sont installés par défaut dans le répertoire /etc/nginx

Définition de l’adresse et du port du serveur ROK4

Il est nécessaire de définir au moins le port d’écoute de ROK4 dans le fichier server.conf.

&lt;!-- Chemin d'écoute du serveur FCGI dans le cas d'une socket UNIX "/var/run/rok4sock"
Ou (ip d'écoute) deux point suivi d'un numéro de port "127.0.0.1:9000" ou ":9000"
Doit être vide pour une utilisation avec Apache ou Spawn-Fcgi--&gt;
&lt;serverPort&gt;:9000&lt;/serverPort&gt;

Lancement de ROK4 en mode statique

La ligne de commande permettant de lancer ROK4 comme instance autonome est la suivante

./rok4 -f /chemin/vers/fichier/server.conf &amp;

Il se peut que votre instance autonome ROK4 se lance en français (cela dépend de votre configuration). Cela pose un problème lors de la lecture des nombres décimaux par exemple (confusion point et virgule). Il est donc conseillé de lancer la commande suivante :

LANG=C ./rok4 -f /chemin/vers/fichier/server.conf &amp;

Les logs du service sont disponibles par défaut (voir server.conf) dans le dossier /var/tmp

Configuration de Nginx

Remplacer le fichier default présent dans le répertoire /etc/nginx/sites-enabled par le contenu suivant :

upstream rok4 { server localhost:9000; }

server {
listen 80;
root /var/www;
server_name localhost;

access_log /var/log/rok4_access.log;
error_log /var/log/rok4_error.log;

location /wmts {
fastcgi_pass rok4;
include fastcgi_params;
}
location /wms {
fastcgi_pass rok4;
include fastcgi_params;
}
}

Mise en route du serveur

Lancer le serveur Nginx

sudo /etc/init.d/nginx start

Pour le relancer

sudo nginx -s reload

Le service WMS est disponible à l’adresse suivante :
http://localhost/wms?request=GetCapabilities&service=WMS

Le service WMTS est disponible à l’adresse suivante :
http://localhost/wmtsrequest=GetCapabilities&service=WMTS

Les logs du service sont disponibles par défaut (voir server.conf) dans le dossier /var/tmp

 

Utilisation du service

Une fois le service rendu disponible, il est possible d’utiliser le service déployé de manière directe (interrogation via des URLs obéissant au standard WMS) ou en utilisant un client dédié tel que QGIS.

Ci-dessous, un exemple de visualisation du jeu de test fourni (SCAN1000Ⓡ) sous QGIS :