Wie man Python-Skripte mit Apache und mod_wsgi unter Ubuntu 20.04 ausführt

mod_wsgi ist ein Apache-Modul, das eine Schnittstelle für das Hosting von Python-basierten Webanwendungen unter Apache bietet. Es eignet sich sowohl für das Hosting von hochleistungsfähigen Produktionswebsites als auch für Ihre durchschnittlichen selbst verwalteten persönlichen Websites, die auf Web-Hosting-Diensten laufen. Mit mod_wsgi können Sie Anwendungen, die mit Frameworks und Tools wie Django, Web.py, Werkzug, Chery.py, TurboGears und Flask geschrieben wurden, einfach bereitstellen.

In diesem Tutorial lernen wir, wie man mod_wsgi mit dem Apache-Server auf einem Ubuntu-20.04-Server installiert und einrichtet.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Der Server ist mit einem Root-Passwort konfiguriert.

Erste Schritte

Bevor Sie beginnen, ist es eine gute Idee, Ihr System mit der neuesten Version zu aktualisieren. Sie können Ihr System mit dem folgenden Befehl aktualisieren:

apt-get update -y
apt-get upgrade -y

Nachdem Sie das System aktualisiert haben, starten Sie es neu, um die Änderungen zu implementieren.

Python installieren

Standardmäßig ist Python auf dem Ubuntu 20.04-Server vorinstalliert. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:

apt-get install python3 libexpat1 -y

Sobald die Installation abgeschlossen ist, können Sie mit dem nächsten Schritt fortfahren.

Apache und mod_wsgi installieren

Als nächstes müssen Sie den Apache-Webserver und das Python-Modul mod_wsgi auf Ihrem System installieren. Sie können sie installieren, indem Sie den folgenden Befehl ausführen:

apt-get install apache2 apache2-utils ssl-cert libapache2-mod-wsgi -y

Wenn alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren Sie Apache für mod_wsgi

Als nÃ?chstes mÃ?ssen Sie ein neues Python-Skript innerhalb des Standard-Web-Root-Verzeichnisses von Apache erstellen und es Ã?ber das Apache-Modul mod_wsgi bereitstellen.

Sie können sie mit dem folgenden Befehl erstellen:

nano /var/www/html/wsgy.py

Fügen Sie die folgenden Zeilen hinzu:

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]

Speichern und schließen Sie die Datei. Ändern Sie dann den Eigentümer der Datei mit folgendem Befehl in www-data:

chown www-data:www-data /var/www/html/wsgy.py

Als Nächstes erstellen Sie eine Apache-Konfigurationsdatei für virtuelle Hosts, um diese Datei über das HTTP-Protokoll bereitzustellen.

nano /etc/apache2/conf-available/wsgi.conf

Fügen Sie die folgende Zeile hinzu:

WSGIScriptAlias /wsgi /var/www/html/wsgy.py

Speichern und schließen Sie die Datei. Aktivieren Sie dann die mod-wsgi-Konfiguration und starten Sie den Apache-Dienst mit dem folgenden Befehl neu:

a2enconf wsgi
systemctl restart apache2

mod-wsgi testen

Zu diesem Zeitpunkt ist der Apache-Webserver so konfiguriert, dass er Ihre Python-Datei über das HTTP-Protokoll bedient.

Um dies zu testen, öffnen Sie Ihren Webbrowser und geben Sie die URL http://your-server-ip/wsgi ein. Sie sollten die mod-wsgi-Testseite auf dem folgenden Bildschirm sehen:

Apache mod_wsgi

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben erfolgreich Python-Skript über Apache-Webserver unter Verwendung des mod_wsgi-Moduls auf dem Ubuntu 20.04-Server eingesetzt. Ich hoffe, Sie können nun problemlos jede Python-Anwendung mit Apache und mod_wsgi in der Produktionsumgebung einsetzen.

Das könnte dich auch interessieren …