Erfahren Sie, wie Sie das mod_wsgi-Modul des Apache in­stal­lie­ren und verwenden, um Python-Skripte auf einer Webseite aus­zu­füh­ren. Dieses Apache-Modul kann verwendet werden, um in Python ge­schrie­be­ne Webseiten zu bedienen oder Webseiten mit ein­ge­bet­te­ten Python-Skripten dar­zu­stel­len.

mod_wsgi ist eine besonders gute Wahl für Web­ent­wick­ler, die an den Umgang des Apache mit PHP gewöhnt sind. Wenn Sie die Leis­tungs­fä­hig­keit und Fle­xi­bi­li­tät von Python wollen, aber wollen, dass es wie PHP im Web funk­tio­niert, ist mod_wsgi eine einfache Antwort.

An­for­de­run­gen

  • Ein Cloud Server unter Linux (CentOS 7).
  • Der Apache wurde in­stal­liert und läuft.
  • Grund­le­gen­de Kennt­nis­se in Python.
Cloud Server
Leis­tungs­star­ke Kon­fi­gu­ra­tio­nen
  • On-Demand ska­lier­bar & Root-Zugriff inklusive
  • Hoch­ver­füg­ba­re Server-Plattform
  • ISO-zer­ti­fi­zier­te Re­chen­zen­tren am Standort Deutsch­land

mod_wsgi vs mod_python

Viele Benutzer sind verwirrt über den Un­ter­schied 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 ro­bus­te­ren Funk­ti­ons­um­fang verfügt, wird mod_wsgi viel aktiver un­ter­stützt und ent­wi­ckelt. Daher empfehlen wir mod_wsgi für die meisten Benutzer.

In­stal­la­ti­on von mod_wsgi

Ak­tual­li­sie­ren Sie Ihr System:

sudo yum update

In­stal­lie­re mod_wsgi mit dem Befehl:

sudo yum install mod_wsgi

Starten Sie den Apache neu:

sudo systemctl restart httpd

Ver­ge­wis­sern 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 kon­fi­gu­rie­ren

Aus Si­cher­heits­grün­den sollten die Python-Skripte in einem Ver­zeich­nis abgelegt werden, das nicht im Web verfügbar ist. Erstellen Sie dieses Ver­zeich­nis:

sudo mkdir /var/www/python

Setzen Sie den Apache als Ei­gen­tü­mer dieses Ver­zeich­nis­ses, damit er auf die Dateien zugreifen kann:

sudo chown apache:apache /var/www/python

Wir werden WS­GIS­crip­tA­li­as verwenden, um einen Alias für das Skript zu kon­fi­gu­rie­ren. Zu­griffs­rech­te müssen auch für das Ver­zeich­nis vergeben werden, in dem sich das Skript befindet.

Erstellen Sie eine Apache-Kon­fi­gu­ra­ti­ons­da­tei für ein Beispiel-Skript "Hello World" und öffnen Sie sie zur Be­ar­bei­tung:

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 powered by Acronis
Mi­ni­mie­ren Sie Aus­fall­zei­ten mit unserem Kom­plett­schutz
  • Au­to­ma­tisch: Backups und Recovery
  • Intuitiv: Planung und Ma­nage­ment
  • In­tel­li­gent: KI-basierter Be­dro­hungs­schutz
  • Inkl. 300,- € Start­gut­ha­ben im 1. Monat

Erstellen eines Test­skripts

Wir werden für dieses Beispiel das offiziell emp­foh­le­ne mod_wsgi Hello World Test­skript verwenden.

Erstellen Sie die Datei und öffnen Sie sie zur Be­ar­bei­tung:

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 Ei­gen­tü­mer dieser Datei, damit auf sie zu­ge­grif­fen werden kann:

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

Be­trach­ten Sie diese Datei in einem Browser unter der URL http://example.com/hel­lo­world. Sie werden die Meldung "Hello World!" sehen.

Zum Hauptmenü