>> 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)