Python Apache · 3 min read · Nov 12, 2025

Einbetten von Python in Apache2 mit mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)

Einbetten von Python in Apache2 mit mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)

Version 1.0
Autor: Falko Timme

Dieses Tutorial zeigt, wie man mod_python auf verschiedenen Distributionen (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) mit Apache2 installiert und verwendet. mod_python ist ein Apache-Modul, das den Python-Interpreter innerhalb des Servers einbettet. Es ermöglicht Ihnen, webbasierte Anwendungen in Python zu schreiben, die viel schneller laufen als traditionelle CGI und Zugriff auf erweiterte Funktionen wie die Möglichkeit, Datenbankverbindungen und andere Daten zwischen Aufrufen zu behalten sowie auf Apache-Interna zuzugreifen.

Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!

1 Vorbemerkung

Ich habe dies auf Systemen mit der IP-Adresse 192.168.0.100 getestet, auf denen Apache2 bereits installiert ist.

2 Debian/Ubuntu

Für Debian/Ubuntu beziehen Sie sich bitte auf dieses Tutorial: Einbetten von Python in Apache2 mit mod_python (Debian Etch).

Für ISPConfig-Benutzer

In diesem Tutorial aktiviere ich mod_python im Standard-vhost, was keine Auswirkungen auf andere vhosts hat. Wenn Sie ISPConfig (ab Version 2.2.24) verwenden, können Sie dieses Setup ohne Änderungen verwenden und mod_python weiterhin pro Website aktivieren/deaktivieren. ISPConfig verwendet den Publisher Handler - er unterstützt nicht den PSP Handler.

3 Fedora 9/CentOS 5.2

3.1 Installation von mod_python

Um mod_python zu installieren, führen wir einfach aus:

yum install mod_python

3.2 Konfiguration von Apache

Jetzt müssen wir Apache so konfigurieren, dass es Python-Dateien verarbeiten kann. Es gibt zwei Möglichkeiten, dies zu tun. Die erste (und Standard-) Möglichkeit ist die Verwendung des Publisher Handlers. Damit können Sie reine Python-Skripte mit der Erweiterung .py schreiben, die von Apache interpretiert werden. Die zweite Möglichkeit ist der PSP Handler. PSP steht für Python Server Pages. Damit können Sie Python-Code direkt in HTML-Code einbetten, ähnlich wie bei PHP. PSP-Dateien haben die Erweiterung .psp.

3.2.1 Der Publisher Handler

Um den Publisher Handler zu aktivieren, müssen wir die mod_python-Konfiguration bearbeiten, die Sie in /etc/httpd/conf.d/python.conf finden. Diese Datei enthält viele Beispiele - wir machen eine Sicherungskopie davon und erstellen diese Datei erneut von Grund auf. Ich verwende hier das Standard-Dokumentenverzeichnis von Fedora/CentOS /var/www/html in der -Direktive - passen Sie dies an Ihre Bedürfnisse an. Die wichtigen Zeilen sind AddHandler mod_python .py und PythonHandler mod_python.publisher:

cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig  
cat /dev/null > /etc/httpd/conf.d/python.conf  
vi /etc/httpd/conf.d/python.conf

| LoadModule python_module modules/mod_python.so Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On |

Bitte beachten Sie: Wenn Sie ISPConfig (ab Version 2.2.24) auf dem Server verwenden, lassen Sie den -Teil in der obigen Datei weg, da dies mod_python global für das betreffende Verzeichnis aktivieren würde. In ISPConfig können Sie mod_python stattdessen pro Website aktivieren, was Ihnen mehr Kontrolle darüber gibt, ob eine Website mod_python verwenden kann oder nicht.

Starten Sie Apache danach neu:

/etc/init.d/httpd restart

Jetzt erstellen wir ein kleines Python-Testskript (z. B. /var/www/html/test.py) mit reinem Python-Code…

vi /var/www/html/test.py

| def index(req): return "Test erfolgreich"; |

… und rufen es in einem Browser auf (z. B. http://192.168.0.100/test.py). Wenn alles gut geht, sollte es “Test erfolgreich” in Ihrem Browser anzeigen.

3.2.2 Der PSP Handler

Um den PSP Handler zu aktivieren, müssen wir die mod_python-Konfiguration bearbeiten, die Sie in /etc/httpd/conf.d/python.conf finden. Diese Datei enthält viele Beispiele - wir machen eine Sicherungskopie davon und erstellen diese Datei erneut von Grund auf. Ich verwende hier das Standard-Dokumentenverzeichnis von Fedora/CentOS /var/www/html in der -Direktive - passen Sie dies an Ihre Bedürfnisse an. Die wichtigen Zeilen sind AddHandler mod_python .psp und PythonHandler mod_python.psp:

cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig  
cat /dev/null > /etc/httpd/conf.d/python.conf  
vi /etc/httpd/conf.d/python.conf

| LoadModule python_module modules/mod_python.so Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .psp PythonHandler mod_python.psp PythonDebug On |

Bitte beachten Sie: Wenn Sie ISPConfig (ab Version 2.2.24) auf dem Server verwenden, lassen Sie den -Teil in der obigen Datei weg, da dies mod_python global für das betreffende Verzeichnis aktivieren würde. In ISPConfig können Sie mod_python stattdessen pro Website aktivieren, was Ihnen mehr Kontrolle darüber gibt, ob eine Website mod_python verwenden kann oder nicht. Beachten Sie auch, dass ISPConfig den PSP Handler nicht unterstützt - es verwendet den Publisher Handler.

Starten Sie Apache danach neu:

/etc/init.d/httpd restart

Jetzt erstellen wir ein kleines PSP-Testskript (z. B. /var/www/html/test.psp) mit HTML- und Python-Code…

vi /var/www/html/test.psp

|

<% req.write("Hallo!") %>

|

… und rufen es in einem Browser auf (z. B. http://192.168.0.100/test.psp). Wenn alles gut geht, sollte es “Hallo!” in Ihrem Browser anzeigen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.