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