# 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](https://www.ionos.at/digitalguide/websites/web-entwicklung/python-tutorial/ "Python-Tutorial") 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](https://www.ionos.at/digitalguide/websites/webseiten-erstellen/php-lernen-leicht-gemacht-das-grosse-einsteiger-tutorial/ "PHP-Lernen leicht gemacht: Das große Einsteiger-Tutorial") 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.

## mod\_wsgi vs mod\_python

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:

```none
sudo yum update
```

Installiere mod\_wsgi mit dem Befehl:

```none
sudo yum install mod_wsgi
```

Starten Sie den Apache neu:

```none
sudo systemctl restart httpd
```

Vergewissern Sie sich, dass das Modul geladen ist:

```none
sudo httpd -M | grep wsgi
```

Der Server wird antworten:

```none
[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:

```none
sudo mkdir /var/www/python
```

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

```none
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:

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

Den folgenden Inhalt in diese Datei einfügen:

```none
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:

```none
sudo systemctl restart httpd
```

## Erstellen eines Testskripts

Wir werden für dieses Beispiel das offiziell empfohlene [mod\_wsgi Hello World Testskript](https://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html "mod_wsgi Hello World") verwenden.

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

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

Den folgenden Inhalt in diese Datei einfügen:

```none
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:

```none
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.


This is a markdown version of: [https://www.ionos.at/digitalguide/websites/web-entwicklung/python-als-webanwendung-auf-centos-7-auszufuehren-mit-mod-wsgi/](https://www.ionos.at/digitalguide/websites/web-entwicklung/python-als-webanwendung-auf-centos-7-auszufuehren-mit-mod-wsgi/) for AI/LLM consumption.