Erstellen einer Python-Anwendung in cPanel (Setup Python App)

cPanel 4 Min. Lesezeit

Auf unseren cPanel-Hosting-Paketen können Sie auch Python-Webanwendungen ausführen, beispielsweise auf Basis von Flask oder Django. Die Anwendungen werden vom CloudLinux Python Selector verwaltet, der im cPanel unter dem Namen „Setup Python App“ verfügbar ist. Jede Anwendung erhält eine eigene virtuelle Umgebung (virtualenv) mit der ausgewählten Python-Version, und die Anwendung wird von Phusion Passenger ausgeführt.

Passenger führt WSGI-Anwendungen aus. Dies ist für Flask, Django und die meisten herkömmlichen Python-Web-Frameworks geeignet. Für ASGI-basierte Frameworks (wie beispielsweise FastAPI) ist ein WSGI-Adapter erforderlich.

Erstellung der Anwendung

  1. Melden Sie sich bei cPanel an und klicken Sie in der Gruppe „Software“ auf das Symbol „Setup Python App“. Die sich öffnende Python-Seite zeigt in der Liste „WEBANWENDUNGEN“ die bereits erstellten Anwendungen an.
  2. Klicken Sie auf die Schaltfläche „ANWENDUNG ERSTELLEN“.
  3. Bitte füllen Sie die Felder aus:
    • Python-Version: Die Python-Version, die Sie verwenden möchten.
    • Anwendungs-Root: Das Verzeichnis der Anwendung relativ zu Ihrem eigenen Verzeichnis (/home/felhasznalo), zum Beispiel pyapp. Geben Sie nicht das Verzeichnis „public_html“ an.
    • Anwendungs-URL: Die Domain und der Pfad, unter dem die Anwendung verfügbar sein wird.
    • Startdatei der Anwendung: die Einstiegsdatei. Standardmäßig ist dies „passenger_wsgi.py“.
    • Anwendungs-Einstiegspunkt: Der Name des WSGI-Objekts in der Einstiegsdatei. Standardmäßig „application“.
    • Passenger-Protokolldatei: Hier werden die Fehlermeldungen der Anwendung gespeichert, beispielsweise unter /home/felhasznalo/logs/pyapp.log.
  4. Klicken Sie oben rechts auf die Schaltfläche „ERSTELLEN“ (so wird sie auf der Benutzeroberfläche angezeigt).

Python: ANWENDUNG ERSTELLEN – Formular mit Angaben zur Version, zum Anwendungsverzeichnis, zur URL und zum Einstiegspunkt

Wichtig: Geben Sie dem Verzeichnis der Anwendung nicht den Namen „python37“, „python38“, „python311“ oder einen ähnlichen Namen, da dies zu Fehlern führt.

cPanel erstellt das Verzeichnis, die virtuelle Umgebung sowie eine Beispieldatei namens „passenger_wsgi.py“, die eine einfache „It works!“-Seite anzeigt. Unter der Anwendungs-URL können Sie überprüfen, ob alles funktioniert.

Pakete installieren

  1. Laden Sie die Anwendungsdateien und die Datei „requirements.txt“ in das Stammverzeichnis der Anwendung hoch.
  2. Klicken Sie auf der Oberfläche der „Setup Python App“ auf das Bearbeitungssymbol (Bleistift) neben der Anwendung.
  3. Geben Sie im Abschnitt „Konfigurationsdateien“ in das Feld „Weitere Datei hinzufügen, dann Enter drücken“ Folgendes ein: „requirements.txt“, und drücken Sie die Eingabetaste (oder klicken Sie auf die Schaltfläche „Hinzufügen“).
  4. Klicken Sie auf die Schaltfläche „Pip-Installation ausführen“ und wählen Sie in der Dropdown-Liste die Datei „requirements.txt“ aus. Die Installation dauert je nach Dateigröße zwischen einigen Sekunden und einigen Minuten.
  5. Starten Sie die Anwendung mit der Schaltfläche „NEUSTART“ neu.

Bearbeiten einer Python-Anwendung: Befehle in der virtuellen Umgebung, Konfigurationsdateien, Ausführen der Pip-Installation mithilfe der Datei „requirements.txt“, Ausführen eines Python-Skripts

Im Feld „Python-Skript ausführen“ können Sie ein Python-Skript in der Anwendungsumgebung ausführen (z. B. „manage.py migrate“), indem Sie auf die Schaltfläche „Skript ausführen“ klicken.

Flask-Anwendung

Befindet sich die Flask-Anwendung in der Datei „app.py“ und lautet der Name des Objekts „app“:

# app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "Helló a Flask alkalmazásból!"

Die Datei „passenger_wsgi.py“ soll folgenden Inhalt haben:

from app import app as application

Fügen Sie die Zeile „flask“ in die Datei „requirements.txt“ ein und installieren Sie anschließend die Pakete wie oben beschrieben.

Django-Anwendung

Bei Django lädt die Datei „passenger_wsgi.py“ die WSGI-Anwendung des Projekts. Wenn das Projekt den Namen „myproject“ trägt:

import os
import sys

sys.path.insert(0, os.path.dirname(__file__))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Bitte beachten Sie bei den Einstellungen Folgendes:

  • Fügen Sie in der Datei „settings.py“ die Domain zur Liste „ALLOWED_HOSTS“ hinzu;
  • Auf der Produktionsseite sollte der Wert von „DEBUG“ auf „False“ gesetzt sein;
  • Kopieren Sie die statischen Dateien mit dem Befehl „python manage.py collectstatic“ in ein öffentliches Verzeichnis (beispielsweise in ein Unterverzeichnis von „public_html“), und stellen Sie sicher, dass „STATIC_ROOT“ darauf verweist;
  • Erstellen Sie die Datenbank im cPanel; siehe: MySQL-Datenbanken und -Benutzer erstellen.

Umgebungsvariablen

Auf der Bearbeitungsseite der Anwendung können Sie über die Schaltfläche „Variable hinzufügen“ Umgebungsvariablen festlegen, beispielsweise den Wert von Djangos SECRET_KEY oder das Datenbankpasswort. Die Anwendung liest diese Werte mithilfe von os.environ aus. Starten Sie die Anwendung nach dem Speichern neu.

Neustart nach einer Änderung

Nach einer Änderung des Codes muss die Anwendung neu gestartet werden: Klicken Sie dazu oben auf der Bearbeitungsseite auf die Schaltfläche „NEUSTART“ oder in der Spalte „Aktionen“ der Anwendungsliste auf das Symbol für den Neustart. Mit der Schaltfläche „ANWENDUNG BEENDEN“ können Sie die Anwendung beenden, mit der Schaltfläche „LÖSCHEN“ können Sie die Anwendung löschen.

Verwendung der Befehlszeile (SSH)

Bei Paketen mit SSH-Zugriff (cP Premium, cP Pro und cP Pro 100) können Sie auch über das Terminal auf die virtuelle Umgebung der Anwendung zugreifen, beispielsweise für die Django-Befehle „manage.py“. Der genaue Befehl wird auf der Oberfläche „Setup Python App“ oben auf der Bearbeitungsseite der Anwendung angezeigt und sieht wie folgt aus:

source /home/felhasznalo/virtualenv/pyapp/3.12/bin/activate && cd /home/felhasznalo/pyapp

Anschließend werden die Befehle „python“ und „pip“ in der Anwendungsumgebung ausgeführt:

pip install -r requirements.txt
python manage.py migrate

Fehlersuche

  • Sollte die Seite eine Fehlermeldung anzeigen, überprüfen Sie bitte die im Feld „Passenger-Protokolldatei“ angegebene Protokolldatei.
  • Bitte überprüfen Sie, ob der Name des Einstiegspunkts der Anwendung mit dem Namen des Objekts in der Datei „passenger_wsgi.py“ übereinstimmt.
  • Die Anwendung läuft innerhalb der Ressourcenbeschränkungen Ihres Webhosting-Kontos. Überprüfen Sie bei Speicherengpässen bitte die Ressourcennutzung.
Zurück: cPanel-Artikel (43)