Mein Variomedia

Hier können Sie sich im Kundenmenü einloggen.




Passwort vergessen?

Weitere Logins

Sie befinden sich hier: variomedia.de > Support > Häufige Fragen (FAQ) > Webanwendungen und Datenbanken > Python, Ruby, Node.js

Fragen und Antworten

Wie kann ich eine Python-Anwendung mittels Phusion Passenger nutzen?

Die meisten Python-Anwendungen und Web-Frameworks (z.B. Django, Flask) nutzen das Web Server Gateway Interface (WSGI) als Schnittstelle zum Webserver. Diese Anwendungen lassen sich auch mittels Phusion Passenger auf unseren Webservern nutzen. Voraussetzung dafür ist, dass Sie einen eigenen Webserver (Pro-Paket bzw. Dedicated Server) gebucht haben, und Passenger aktiviert wurde.

Um eine WSGI-Anwendung mit Phusion Passenger zu nutzen, muss diese zunächst mitsamt ihrer Abhängigkeiten in das gewünschte Verzeichnis auf dem Webserver installiert werden. In diesem Verzeichnis legen Sie dann zusätzlich eine .htaccess-Datei mit folgendem Inhalt an, um Passenger zu aktivieren:

PassengerEnabled on
Options -MultiViews

Die Anwendung sollte über ein ggf. noch zu erstellendes Startup-Script mit dem Namen passenger_wsgi.py aufrufbar sein.. Im Anwendungsverzeichnis muss nun noch ein Unterverzeichnis mit Namen public angelegt werden. In diesem Verzeichnis können von der Anwendung benötigte statische Dateien (z.B. Bilder oder CSS-Dateien) abgelegt werden. Dieses Public-Verzeichnis muss abschließend im Kundenmenü für die gewünschte Domain als Webspace-Pfad eingerichtet werden.

Beispielanwendung

Sie können Passenger mittels folgender kleiner Beispielanwendung testen:

def application(environ, start_response):
  start_response('200 OK', [('Content-type', 'text/plain')])
  return ["Hello, World!"]

Passenger-Anwendung neu starten

Sie können eine Passenger-Anwendung neu starten, indem sie per SSH den Befehl passenger-config restart-app aufrufen. Alternativ können Sie auch im Unterverzeichnis tmp der Anwendung eine Datei restart.txt erstellen (Shell-Befehl touch restart.txt). Passenger überprüft regelmäßig den Zeitstempel dieser Datei und startet die Anwendung neu, sobald der Zeitstempel sich aktualisiert hat.

Python-Version festlegen

Passenger nutzt standardmäßig das System-Python in Version 2.7. Falls Sie eine abweichende Python-Version bzw. eine Python-Version in einem Virtualenv nutzen möchten, können Sie dies über die .htaccess-Direktive PassengerPython vorgeben, z.B.

PassengerPython /usr/bin/python3.8

Diese Einstellung wird jedoch nur einmal beim Start der WSGI-Anwendung übernommen und kann danach nicht mehr geändert werden. Um die Python-Version einer laufenden Anwendung zu ändern, fügen Sie folgenden Code am Anfang der Startdatei passenger_wsgi.py hinzu:

import sys, os

INTERP = "/usr/bin/python3.8"
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)

Passen Sie dabei /usr/bin/python3.8 auf die von Ihnen gewünschte Python-Version an. Die Anwendung muss danach noch mittels passenger-config restart-app neu gestartet werden.


Django
Flask
Passenger
Python
WSGI