ubuntuusers.de

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:

Wiki/Icons/python.png 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 🇬🇧.

  • wsgi.org 🇬🇧 - Seite mit vielen Informationen rund um die WSGI-Schnittstelle

  • Apache 2.4 - Hauptartikel

Diese Revision wurde am 9. Januar 2020 20:38 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Python, Server, Internet, Apache