Comment utiliser MapFish avec un serveur Apache

>> Document officiel “HowTo MapFish Server Apache” non traduit disponible ici

Ce tutoriel décrit comment faire fonctionner MapFish avec un serveur Apache en utilisant le module mod_wsgi.

Dans la dernière section « Comment utiliser le Serveur MapFish », nous avons montré comment lancer un projet MapFish sur le serveur Web embarqué Paster. Cette section décrit comment utiliser Apache au lieu de paster.

Installer le module mod_wsgi

Assurez-vous d’avoir installé apache2-prefork-dev et suivez ces instructions (en anglais) pour compiler, installer le module mod_wsgi, et configurer éventuellement un hôte virtuel.

Vous devez ajouter, en plus de la configuration d’Apache fournie sur cette page, la directive WSGIDaemonProcess précisant qu’un seul processus doit être utilisé (wsgi.multiprocess = False). Pour que ce soit bon, vous devez avoir quelque chose de similaire à cela :

    WSGIProcessGroup monapplication
    Order allow,deny
    Allow from all
 
WSGIScriptAlias /wsgi /chemin/vers/votre/répertoire/wsgi/monapplication.wsgi
WSGIDaemonProcess myapp threads=25

Maintenant, créez un fichier nommé wsgi.load dans le répertoire des modules Apache (/etc/apache2/mods-available) avec ce contenu:

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

Désormais vous pouvez activer le module wsgi dans Apache (a2enmod wsgi) et redémarrer Apache.

Création d’un script de démarrage

Vous avez maintenant besoin d’écrire le script monapplication.wsgi. Ce script est le point d’accès de votre application MapFish.

import site
import os, sys
 
site.addsitedir('/chemin/vers/vpython/lib/pythonX.Y/site-packages')
 
sys.path.append('chemin/vers/MonProjetMapFish')
os.environ['PYTHON_EGG_CACHE'] = '/var/www/python-eggs'
 
from paste.deploy import loadapp
application = loadapp('config:chemin/vers/MonProjetMapFish/development.ini')

Évidemment, vous devez adapter le script ci-dessus à votre configuration.

Note : site.addsitedir() ajoute les bibliothèques de l’environnement virtuel python (virtualenv). Regardez l’article (en anglais) du blog de Ian Bicking pour plus de détails.

Liens utiles :
le Wiki de Pylons : workingenv.py et le module mod_wsgi (en anglais)
Google Code : Intégration du module wsgi avec Pylons (en anglais)
Google Code : Le module wsgi (en anglais)

À propos de gglafouine

Je suis actuellement en poste dans le Groupe Nicollin en tant que Cartographe. J'ai pris l'initiative de mettre en place ce blog en 2008 afin de partager mes connaissances, mes problématiques et mes interrogations. Ainsi, cette plateforme me sert d'appui dans mon travail et d'interface d'échange avec mes collègues.
Ce contenu a été publié dans API Web, HowTo, avec comme mot(s)-clef(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire