Python als Webanwendung auf CentOS 7 auszuführen mit mod_wsgi

Erfahren Sie, wie Sie das mod_wsgi-Modul des Apache installieren und verwenden, um Python-Skripte auf einer Webseite auszuführen. Dieses Apache-Modul kann verwendet werden, um in Python geschriebene Webseiten zu bedienen oder Webseiten mit eingebetteten Python-Skripten darzustellen.

mod_wsgi ist eine besonders gute Wahl für Webentwickler, die an den Umgang des Apache mit PHP gewöhnt sind. Wenn Sie die Leistungsfähigkeit und Flexibilität von Python wollen, aber wollen, dass es wie PHP im Web funktioniert, ist mod_wsgi eine einfache Antwort.

Anforderungen

  • Ein Cloud Server unter Linux (CentOS 7).
  • Der Apache wurde installiert und läuft.
  • Grundlegende Kenntnisse in Python.

Cloud Server von IONOS

Vertrauen Sie auf flexibel skalierbare und zuverlässige Cloud Server auf hochverfügbarer Infrastruktur mit Standort Deutschland inklusive persönlichem Berater und minutengenauer Abrechnung - Sie zahlen also wirklich nur Ihre benötigten Ressourcen!

VMware Virtualisierung
Rest API
Unlimited Traffic

<code>mod_wsgi</code> vs <code>mod_python</code>

Viele Benutzer sind verwirrt über den Unterschied zwischen mod_wsgi und mod_python. Beide Apache-Module haben ungefähr den gleichen Effekt: Mit ihnen können Sie Python-Module auf einer Webseite ausführen.

Obwohl mod_python über einen robusteren Funktionsumfang verfügt, wird mod_wsgi viel aktiver unterstützt und entwickelt. Daher empfehlen wir mod_wsgi für die meisten Benutzer.

Installation von mod_wsgi

Aktuallisieren Sie Ihr System:

sudo yum update

Installiere mod_wsgi mit dem Befehl:

sudo yum install mod_wsgi

Starten Sie den Apache neu:

sudo systemctl restart httpd

Vergewissern Sie sich, dass das Modul geladen ist:

sudo httpd -M | grep wsgi

Der Server wird antworten:

[user@localhost ~]# sudo httpd -M | grep wsgi
wsgi_module (shared)

Apache konfigurieren

Aus Sicherheitsgründen sollten die Python-Skripte in einem Verzeichnis abgelegt werden, das nicht im Web verfügbar ist. Erstellen Sie dieses Verzeichnis:

sudo mkdir /var/www/python

Setzen Sie den Apache als Eigentümer dieses Verzeichnisses, damit er auf die Dateien zugreifen kann:

sudo chown apache:apache /var/www/python

Wir werden WSGIScriptAlias verwenden, um einen Alias für das Skript zu konfigurieren. Zugriffsrechte müssen auch für das Verzeichnis vergeben werden, in dem sich das Skript befindet.

Erstellen Sie eine Apache-Konfigurationsdatei für ein Beispiel-Skript "Hello World" und öffnen Sie sie zur Bearbeitung:

sudo nano /etc/httpd/conf.d/helloworld.conf

Den folgenden Inhalt in diese Datei einfügen:

WSGIScriptAlias /helloworld /var/www/python/helloworld.py

Directory /var/www/python
Order allow,deny
Allow from all
Directory

Speichern und beenden Sie die Datei. Starten Sie dann den Apache neu:

sudo systemctl restart httpd

Cloud Backup von IONOS

Maximaler Schutz für Ihre Unternehmensdaten: Einfache Backups für Cloud-Infrastruktur, PCs und Smartphones, inklusive persönlichem Berater!

Umfassender Schutz
Einfache Wiederherstellung
Schnelle Datenspeicherung

Erstellen eines Testskripts

Wir werden für dieses Beispiel das offiziell empfohlene mod_wsgi Hello World Testskript verwenden.

Erstellen Sie die Datei und öffnen Sie sie zur Bearbeitung:

sudo nano /var/www/python/helloworld.py

Den folgenden Inhalt in diese Datei einfügen:

def application(environ, start_response):
    status = '200 OK'
    output = b'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

Speichern und beenden Sie die Datei. Setzen Sie dann Apache als Eigentümer dieser Datei, damit auf sie zugegriffen werden kann:

sudo chown apache:apache /var/www/python/helloworld.py

Betrachten Sie diese Datei in einem Browser unter der URL http://example.com/helloworld. Sie werden die Meldung "Hello World!" sehen.