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_python3.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
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 |
Bitte beachten Sie: Wenn Sie ISPConfig (ab Version 2.2.24) auf dem Server verwenden, lassen Sie den
Starten Sie Apache danach neu:
/etc/init.d/httpd restartJetzt 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
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 |
Bitte beachten Sie: Wenn Sie ISPConfig (ab Version 2.2.24) auf dem Server verwenden, lassen Sie den
Starten Sie Apache danach neu:
/etc/init.d/httpd restartJetzt 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.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.