"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

mod_python Win32, Apache 2.2.4: Installation

GrandAdmiralThrawn 23.11.2007 - 11:27 957 3
Posts

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
Grüß euch!

Ich habe nicht direkt eine Coding-Frage, sondern eher eine Installationsfrage, ich hoffe trotzdem, daß ich hier damit richtig bin.

Also, ich habe einen Apachen unter Windows 2000 laufen, Version ist 2.2.4. Erst gestern habe ich es mir angetan, mod_perl 2.0.3 mit ActivePerl 5.8.8 zum Laufen zu bewegen, und heute dachte ich mir, Zeit für Python Support!

Also installiert habe ich Python 2.5.1, und das Modul mod_python 3.3.1 für Python 2.5.x und Apache 2.2.x.

Was ich jetzt offenbar noch nicht richtig mache, ist die httpd.conf Konfiguration. Sieht bei mir momentan wie folgt aus (ich filtere nach Fileextension)...

Snippet:
Code:
LoadModule python_module modules/mod_python.so

[...]

AddHandler python-program .py
<Files ~ "\.py$">
  SetHandler python-program
  PythonHandler test
</Files>

Den "PythonHandler" muß man nach dem was ich auf Google finden konnte einsetzen, und auf den Namen des auszuführenden Scripts setzen, ohne die *.py Extension. Das alleine finde ich schon vollkommen unpraktisch, aber zum Testen hätte es gereicht. Leider bekomme ich damit einen hübschen 500er, Mr. "Internal Server Error". Das auszuführende Script hätte "test.py" geheißen, ein Hello World py Code.

Apaches error.log meint dazu:
Code:
[error] [client 0.0.0.0] mod_python (pid=4172, interpreter='<url-zensiert>', phase='PythonHandler', handler='test'): Application Error
[error] [client 0.0.0.0] ServerName='<url-zensiert>'
[error] [client 0.0.0.0] DocumentRoot: '<Filesystempfad-zensiert>'
[error] [client 0.0.0.0] URI: '/thrawn/test.py'
[error] [client 0.0.0.0] Location: None
[error] [client 0.0.0.0] Directory: None
[error] [client 0.0.0.0] Filename: '<Filesystempfad-zensiert>'
[error] [client 0.0.0.0] PathInfo: ''
[error] [client 0.0.0.0] Traceback (most recent call last):
[error] [client 0.0.0.0]   File "C:\\Server\\Python25\\Lib\\site-packages\\mod_python\\importer.py", Line 1537, in HandlerDispatch\n   default=default_handler, arg=req, silent=hlist.silent)
[error] [client 0.0.0.0]   File "C:\\Server\\Python25\\Lib\\site-packages\\mod_python\\importer.py", Line 1202, in _process_target\n    module = import_module(module_name, path=path)
[error] [client 0.0.0.0]   File "C:\\Server\\Python25\\Lib\\site-packages\\mod_python\\importer.py", Line 304, in import_module\n    return __import__(module_name, {}, {}, ['*'])
[error] [client 0.0.0.0] ImportError: No module named test

Der Inhalt des Testscriptes "test.py" lautet wie folgt:
Code:
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hallo %s!"%(req.args,))
return apache.OK

Also ich nehme Mal an, daß meine Konfiguration Müll ist. Was ich gern hätte, wäre, daß ich domänenweit Python Skripte im Apachen ausführen kann (limitieren kann ich später auch noch).

Leider finde ich kein einfaches Guide für die mod_python Installation unter Win32, welches auch die Apache Konfigurationsmöglichkeiten genau diskutiert. :(

Kann mir da vielleicht jemand weiterhelfen, meinen Apachen dazu zu überreden, *.py auszuführen? Danke!

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25377
was du wahrscheinlich willst ist den publisher-handler um alle .py dateien aufrufen zu können. gib einfach folgenden code in deine httpd.conf:
Code:
AddHandler python-program .py
PythonHandler mod_python.publisher
PythonDebug On
das passende file "hello.py" braucht dann folgenden inhalt:
Code:
def say(req, what="NOTHING"):
      return "I am saying %s" % what
ein aufruf erfolgt per:
Code:
http://meinhost/hello.py/say
oder noch besser:
Code:
http://meinhost/hello/say?what=o.v.e.r.clockers.at%20FTW
hier ist übrigens noch ein bisschen lesestoff: http://www.modpython.org/live/curre...-pub-intro.html

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
Vielen Dank, so hat's geklappt! Ist ja konfigurationstechnisch und auch vom Aufruf her ziemlich ungewohnt, aber es haut Mal hin! :)

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25377
wahrscheinlich wurde deine .htaccess nicht gelesen. "AllowOverride FileInfo" für das verzeichnis hätte dir auch geholfen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz