python, mod_python und apache Konfiguration

31/10/2007 - 19:51 von Thomas Steinbach | Report spam
Hallo NG,

Ich habe ein Problem beim Aufufen eines *.py scriptes
im Webbrowser. Ich bekomme einen 404 Error und den
freundlich Hinweis:
snip
Not Found
The requested URL /cgi-pyt/printenv.py was not found on this server.
snap

Ich weiss jetzt nicht genau ob es ein Apache oder eine
python/mod_python Problem ist und hoffe hier kennt sich
jemand mit den drei Dingen aus.

Ich habe auch so ziemlich das gesamte Netz abgeucht, kann
aber keinen Fehler in meiner gewaehlten Konfiguration finden.
btw: Apache 2.0.61 und python 2.5.0 auf Windows 32Bit (Vista)

Python 2.5.0 (_nicht_ 2.5.1) ist ohne Probleme mittels Installer
aufgespielt und mod_python 3.3.1 (fuer apache 2.0.x und python 2.5)
liess sich ebenfalls problemlos installieren und ich finde auch
diverse Scripte/Programme unter "Lib/Site-packages/mod_python".

Meine python.conf schaut so aus:

snip
LoadFile "C:/app/pyt250/python25.dll"
LoadModule python_module modules/mod_python.so
<IfModule mod_python.c>
PythonOption mod_python.mutex_directory "C:\\temp"
# hier kann ich als apache-user (sep Account) schreiben.
</IfModule>
<Directory "C:/www/cgi-pyt">
Options +ExecCGI
AllowOverride None
#SetHandler mod_python
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
Order deny,allow
Deny from all
Allow from all
</Directory>
<IfModule mod_python.c>
<Location /mptest>
SetHandler mod_python
PythonHandler mod_python.testhandler
PythonDebug On
Order deny,allow
Deny from all
Allow from .dom
</Location>
</IfModule>

und ein Aufruf der Seite http://meinrechner.dom/mptest
liefert mir auch die typischen Informationen durch
das Python Modul.

btw: doc_root ist C:/www/htdocs

Das Modul ist also geladen, aber wenn ich
z.b. das Script (ist ein ASCII File - kein UTF8)
snip
#!C:/app/pyt250/python
print "Content-type: text/html";
print "Hello World!"
snap

mit http://meinrechner.dom/cgi-pyt/helloworld.py
aufrufe, dann wird dieses Script nicht gefunden :-(
Warum das? Schreibweisen habe ich schon
mehrmals nachgeprueft und durch copy and paste
auch "gleichgeschaltet" und auch Gross-/Klein-
schreibung beruecksichtigt. Oder werden python
scripte ganz anders aufgerufen?

btw: es ist dabei unerheblich ob ich das "cgi-pyt"
und scripte in ein Unterverzeichnis von doc_root verlege
oder als ein "externes" Verzeichnis habe.
Auch ist es unerhablich ob ich die Directory-Konfiguration
innerhalb oder ausserhlab von <IfModule /> habe.
Auch das Setzen oder Nichtsetzen von
"SetHandler mod_python" bringt das gleiche Resultat.

Im access.log des VirtualHost steht:
snip
"GET /cgi-pyt/helloworld.py HTTP/1.1" 404 365
snap
und im error.log des Webservers steht
snip
[notice] mod_python (pidx84, interpreter='meinrechner'): \
Importing module 'C:\\www\\cgi-pyt\\helloworld.py'
snap
im error.log des virtual Host steht nichts.

Auf der Console bekomme ich alles einwandfrei
angezeigt. Ein:
snip
C:\www\cgi-pyt>C:\app\pyt250\python.exe helloworld.py

Hello World!

C:\www\cgi-pyt>
snap

liefert auch die entsprechende Ausga.

ps: python ist nicht im Pfad. Aber die python25.dll
ist im Pfad bzw. lade ich diese auch expliziet in der
python.conf

Ich weiss echt nicht mehr weiter und hoffe hier hat jemand
eine Idee oder kann mir eine wirklich funktionierende
python/mod_python/apache Konfiguration auf Windows
nennen...

btw: Ich habe auch von Konfigurationen die nur auf python
basieren gelesen, komme da aber auch nicht weiter.
Wenn da jemand was funktionierendes hat, bitte mal
posten. Danke

Thomas
 

Lesen sie die antworten

#1 Gerold Penz
31/10/2007 - 21:39 | Warnen spam
Thomas Steinbach schrieb:
Ich weiss jetzt nicht genau ob es ein Apache oder eine
python/mod_python Problem ist



Hallo Thomas!

``mod_python != CGI``

Wenn du einfach nur CGI brauchst, dann habe ich hier ein Rezept für
dich: http://halvar.at/python/xampp_python_cgi/
Es ist zwar für XAMPP geschrieben, aber ob du den Apachen selber
installierst oder den von XAMPP verwendest ist dafür nicht wichtig.

Hauptsache ist nur, dass du ENTWEDER CGI ODER mod_python verwendest und
nicht zu mischen versuchst. Hinweis: mod_python ist meist keine so gute
Wahl.

Und hier noch die üblichen Links für CGI-/mod_python-Fragen:

- http://wiki.python.de/Web-Skripte_z...en_bringen
- http://wiki.python.de/CGI
- http://wiki.python.org/moin/CgiScripts
- http://docs.python.org/lib/module-cgi.html

Und hier noch der obligatorische Hinweis, es doch lieber mit CherryPy zu
probieren. ;-)

http://gelb.bcom.at/trac/misc/wiki/...yPyCheetah

mfg
Gerold
:-)

________________________________________________________________________
Gerold Penz - bcom - Programmierung
http://halvar.at | http://sw3.at
Wissen hat eine wunderbare Eigenschaft:
Es verdoppelt sich, wenn man es teilt.

Ähnliche fragen