mod_python in xampp

Ich wollte mal testen ob man mod_python für eine XAMPP Installation unter Linux aktivieren kann. Ein sehr umständliches Unterfangen.Nach umfangreicher,erfolgloser, Recherche im Web habe ich mir folgende, für Anfänger leicht nachvollziehbare Lösung überlegt.Ich habe mir mod-python mittels apt-get installiert.

sudo apt-get install libapache2-mod-python

Leider kommt damit auch der Apache auf meinen Rechner, den ich ja mit XAMPP schon installiert habe. Ich kopiere mir also das mod_python.so aus dem /usr/lib/apache2/modules/ Ordner (den Pfad finde ich wenn ich unter /etc/apache2/mods-available/python.load nachsehe) in mein /opt/lampp/modules Verzeichnis. Danach deinstalliere ich den Apache2 (und nur den) wieder mit Synaptic,oder ich sorge dafür, dass der Apache nicht als Dienst eingerichtet wird, damit es nicht zu Fehlermeldungen kommt.

Dann gehe ich in das Verzeichnis : /opt/lampp/etc ,öffne als root die Datei „httpd.conf“ und füge
LoadModule python_module /opt/lampp/modules/mod_python.so ein.

Unter DocumentRoot "/opt/lampp/htdocs" ändere ich den Eintrag wie folgt:

<Directory >
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>

Ich lege mir nun eine Datei mit dem Namen test.py mit folgendem Inhalt:

def index(req):
     return "Test erfolgreich!"


unter /opt/lampp/htdocs an,

starte den Server mit:
sudo /opt/lampp/lampp start
und rufe im Browser: localhost/test.py auf.
Wenn alles geklappt hat darf dort nur :
Test erfolgreich“ stehen.

PSP Handler

Wenn ich mein Python-Script in eine Html-Seite einbinden möchte ändere ich den Text in der httpd.conf wie folgt:

AddHandler mod_python .psp
PythonHandler mod_python.psp
PythonDebug On


(psp = python server page)

Ein kleines Beispiel:
<%
import time
wochentag = time.strftime('%A', time.localtime(time.time()))
message = 'Hallo Leute! Heute ist %s.' % wochentag
%>
<html>
<body>
<h1><%= message %></h1>
</body>
</html>


Ich speicher die Datei als time.psp wieder unter /opt/lampp/htdocs und rufe im Browser :
localhost/time.psp auf.

mod_python ohne xampp

Ich installiere mir den Apache2, plus libapache2-mod-python, auf mein System und füge folgenden Text in die httpd.conf-Datei ein: (Nicht wundern, wenn die vorher leer ist. Selbige dient zur Konfiguration durch den User !)

LoadModule python_module /modules/mod_python.so

DocumentRoot "/var/www"

<Directory />
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
allow from all

AddHandler mod_python .psp
PythonHandler mod_python.psp
PythonDebug On
</Directory>

Und meine time.psp Datei speicher ich nun unter var/www ab.