Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
mod_wsgi ist ein Modul für den Webserver Apache, mit dessen Hilfe Python-Webapplikation, welche die WSGI-Schnittstelle nutzen, mit dem Webserver kommunizieren können. WSGI steht dabei für „Web Service Gateway Interface“. WSGI ist der weithin akzeptierte Standard für Python-Webapplikation, den auch quasi alle Webbibliotheken und -applikationen unterstützen. Die Spezifikation kann bei Interesse in der PEP 3333 nachgelesen werden.
Zur Nutzung in Kombination mit Apache muss folgendes Paket für Python 3 installiert werden [1]:
libapache2-mod-wsgi-py3
mit apturl
Paketliste zum Kopieren:
sudo apt-get install libapache2-mod-wsgi-py3
sudo aptitude install libapache2-mod-wsgi-py3
Wer Python 2 nutzt, installiert stattdessen das folgende Paket:
libapache2-mod-wsgi
mit apturl
Paketliste zum Kopieren:
sudo apt-get install libapache2-mod-wsgi
sudo aptitude install libapache2-mod-wsgi
Nach der Installation muss das Modul aktiviert werden [2]:
sudo a2enmod wsgi
Wie eine Python-Webapplikation an mod_wsgi angebunden wird, ist in der Regel in der Dokumentation der jeweiligen Applikation bzw. des jeweiligen Web-Frameworks zu finden. Das Schema ist aber immer ähnlich dem folgenden Beispiel.
Um die Datei wsgi.py via mod_wsgi an den Apache Webserver zu binden, die Datei /etc/apache2/sites-available/default mit einem Editor mit Root-Rechten öffnen[3]. Dort findet man ziemlich am Anfang:
1 2 3 | <Directory /var/www> ... </Directory> |
Hier ergänzt man folgendes (Pfade je nach Apache-Version anpassen; hier für Apache 2.2):
1 2 3 4 5 6 7 8 9 | WSGIScriptAlias /alias /var/www/test/python/wsgi.py WSGIPythonPath /var/www/test/python <Directory /var/www> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory> |
Damit steht wsgi.py unter der URL http://SERVER-IP_ODER_NAME/alias
zur Verfügung.
Neben der Kombination aus Apache und mod_wsgi gibt es noch eine ganze Reihe weiterer, teils spezialisierter Server, welche die WSGI-Schnittstelle unterstützen. Python selbst enthält seit Version 2.6 eine einfache Basisimplementierung eines WSGI-Servers, welcher sich zwar Testzwecke aber nicht für produktive Umgebungen eignet.
Ein auf WSGI spezialisierter Server ist z.B. gunicorn . Dieser Server wird auch bei ubuntuusers.de genutzt. Eine Übersicht über weitere WSGI-Server findet man im Internet auf der Seite von wsgi.org .
wsgi.org - Seite mit vielen Informationen rund um die WSGI-Schnittstelle
Apache 2.2 und Apache 2.4 - Hauptartikel
Diese Revision wurde am 9. April 2016 15:23 von dAnjou erstellt.