ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

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, 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.

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

Wer Python 2 nutzt, installiert stattdessen das folgende Paket:

  • libapache2-mod-wsgi

Befehl zum Installieren der Pakete:

sudo apt-get install libapache2-mod-wsgi 

Oder mit apturl installieren, Link: apt://libapache2-mod-wsgi

Nach der Installation muss das Modul 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 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.

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 1. Mai 2019 08:15 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Python, Server, Internet, Apache