Sollte man sich mit Flask oder Django beschäftigen, dauert es nicht lange, bis man unter Umständen eigene eigene interaktive Webseite bereitstellen möchte.

Um WSGI-Skripte ausführen zu können, wird als erstes das Modul mod_wsgi benötigt.
Achtung! Dieses Modul darf nicht gleichzeitig mit dem Apache-Python-Modul aktiviert sein, da der Apche sonst abstürzen kann.

Dieses Installiert man mit den folgenden Befehl:

apt install libapache2-mod-wsgi

Danach muss der Apache2-Server neu gestartet werden:

systemctl restart apache2

Der Status kann folgendermaßen kontrolliert werden:

systemctl status apache2

Der Status mus wie folgt aussehen:

Apache Status

Unter:

… müssen unter “Zusätzliche Anweisungen für HTTP” und ggf. “Zusätzliche Anweisungen für HTTPS” folgende Zeilen eingetragen werden:

WSGIScriptAlias / /var/www/vhosts/wsgitest.hotlein.de/httpdocs/app.py

Diese Zeile bedeutet, dass unter dem Stammverzeichnis (/) im VHOST-Verzeichnis “/var/www/vhosts/wsgitest.hotlein.de/httpdocs/” die Datei “app.py” automatisch aufgerufen wird, wenn die Webseitenadresse aufgerufen wird:

Natürlich kann das Skript auchin einem Unterordner laufen, beispielsweise im Unterverzeichnis “Python”:

WSGIScriptAlias /python /var/www/vhosts/wsgitest.hotlein.de/httpdocs/python/app.py

In diesem Beispiel würde die Webseite unter “http://wsgitest.hotlein.de/python” ausgeführt werden. Lässt man in der Konfiguration die “app.py” weg, muss auch das auszuführende Skript mit angegeben werden.

Hier der Code für die Testseite (app.py):

def application(environ,start_response):
    status = '200 OK'
    html = '<html>\n' \
           '<body>\n' \
           '<div style="width: 100%%; font-size: 40px; font-weight: bold; text-align: center;">\n' \
           'Welcome to mod_wsgi Test Page\n' \
           '</div>\n' \
           '</body>\n' \
           '</html>\n'
    response_header = [('Content-type','text/html')]
    start_response(status,response_header)
    return [html.encode('UTF-8')]

Bei Problemen bitte genau gucken, ob die Testdatei in das richtige Verzeichnis abgelegt wurde, und ob der Apache-Server ausführrechte besitzt. Außerdem kann man nachsehen, ob in den Apache-Einstellungen:

… der Haken bei “WSGI” gesetzt ist:

Sollte der Punkt nicht vorhanden sein, wurde vermutlich das Modul nicht richtig installiert.

Leave a Comment

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.