mod wsgi
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
mod_wsgi 🇬🇧 ist ein Modul für den Webserver Apache 2.4, 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 De-Facto 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.
Installation¶
Zur Nutzung in Kombination mit Apache muss folgendes Paket für Python 3 installiert werden [1]:
libapache2-mod-wsgi-py3
Befehl zum Installieren der Pakete:
sudo apt-get install libapache2-mod-wsgi-py3
Oder mit apturl installieren, Link: apt://libapache2-mod-wsgi-py3
Nach der Installation muss das Modul gegebenenfalls noch aktiviert werden [2]:
sudo a2enmod wsgi
Benutzung¶
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 im Verzeichnis /var/www/html/test/python via mod_wsgi an den Apache Webserver zu binden, die Datei /etc/apache2/sites-available/000-default.conf mit einem Editor mit Root-Rechten öffnen[3]. Dort fügt man am Ende, vor dem </VirtualHost>
, folgendes ein:
1 2 3 4 5 | WSGIScriptAlias /test /var/www/html/test/python/wsgi.py <Directory /var/www/html/test/python> Require all granted </Directory> |
Damit steht wsgi.py unter der URL http://SERVER-IP_ODER_NAME/test
zur Verfügung.
Alternativen¶
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 🇬🇧.
Links¶
wsgi.org 🇬🇧 - Seite mit vielen Informationen rund um die WSGI-Schnittstelle
Apache 2.4 - Hauptartikel