Python in Apache · 3 min read · Nov 12, 2025

Einbettung von Python in Apache2 mit mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) - Seite 2

4 Mandriva 2008 Spring (2008.1)

4.1 Installation von mod_python

Bevor wir mod_python installieren können, müssen wir die Haupt-, main_updates-, contrib- und contrib_updates-Repositorys aktivieren. Gehen Sie zu http://easyurpmi.zarb.org/ - es sollte Ihnen die Befehle geben, die Sie ausführen müssen, um diese Repositorys zu aktivieren. In meinem Fall habe ich ausgeführt

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz

um sie zu aktivieren.

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

urpmi apache-mod_python

4.2 Konfiguration von Apache

Jetzt müssen wir Apache konfigurieren, damit 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. Er ermöglicht es Ihnen, reine Python-Skripte mit der Erweiterung .py zu schreiben, die von Apache interpretiert werden. Die zweite Möglichkeit ist der PSP Handler. PSP steht für Python Server Pages. Er ermöglicht es Ihnen, Python-Code direkt in HTML-Code einzubetten, ähnlich wie PHP. PSP-Dateien haben die Erweiterung .psp.

4.2.1 Der Publisher Handler

Um den Publisher Handler zu aktivieren, müssen wir die mod_python-Konfiguration bearbeiten, die Sie in /etc/httpd/modules.d/16_mod_python.conf finden können. 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 Mandriva /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/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/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 anschließend 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.

4.2.2 Der PSP Handler

Um den PSP Handler zu aktivieren, müssen wir die mod_python-Konfiguration bearbeiten, die Sie in /etc/httpd/modules.d/16_mod_python.conf finden können. 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 Mandriva /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.psp:

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/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. Bitte beachten Sie auch, dass ISPConfig den PSP Handler nicht unterstützt - es verwendet den Publisher Handler.

Starten Sie Apache anschließend 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.