mod_python unter Linux installieren

Probleme bei der Installation?
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Hi, ich möchte gerne das mod_python unter SuSE-Linux 9.2 installieren (Apache2), und habe zwei Fragen:

1. ist ist mit dem Modul dann möglich Python-Dateien überall im Dateisystem (also natürlich in den htdocs) direkt anzusprechen (also kein cgi). Habe ich das richtig verstanden?

2. Wenn ich das Modul kompilieren will, läuft configure läuft soweit ohne Fehler:

Code: Alles auswählen

./configure --with-apxs=/usr/local/apache2/bin/apxs 
Wenn ich danach make aufrufe, kommt es zu einer Unzahl an Fehlern, hier ein kleiner Auszug:

Code: Alles auswählen

mod_python.c:1877: error: parse error before '*' token
mod_python.c: In function `PythonPostReadRequestHandler':
mod_python.c:1881: error: `req' undeclared (first use in this function)
mod_python.c: At top level:
mod_python.c:1888: error: parse error before '*' token
mod_python.c: In function `PythonTransHandler':
mod_python.c:1889: error: `req' undeclared (first use in this function)
mod_python.c: At top level:
mod_python.c:1891: error: parse error before '*' token
mod_python.c: In function `PythonTypeHandler':
mod_python.c:1892: error: `req' undeclared (first use in this function)
apxs:Error: Command failed with rc=65536
.
make[1]: *** [mod_python.so] Fehler 1
make[1]: Leaving directory `/home/bicpi/Documents/mod_python-3.1.4/src'
make: *** [do_dso] Fehler 2

Was läuft da schief, muss ich irgenwas zusätzlich installieren?? Oder habe ich was Grundsätzliches vergessen bzw. weiss es nicht?

Bin über jede Hilfe dankbar.

Viele Grüße
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

bicpi hat geschrieben:1. ist ist mit dem Modul dann möglich Python-Dateien überall im Dateisystem (also natürlich in den htdocs) direkt anzusprechen (also kein cgi). Habe ich das richtig verstanden?
Nein. mod_python ist kein CGI und auch kein PHP. Mit mod_python kannst du eine Datei wählen, die vom Python Interpreter ausgeführt wird.
bicpi hat geschrieben:2. Wenn ich das Modul kompilieren will, läuft configure läuft soweit ohne Fehler:

Code: Alles auswählen

./configure --with-apxs=/usr/local/apache2/bin/apxs 
Müsste es nicht APXS2 sein? Und mod_python 3.x nicht 2.x
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

1. Meinen wir nicht doch das gleiche? Mit mod_python kann ich eine .py Datei im Documentroot aufrufen und sie wird ausgeführt? Und dazu muss sie nicht im cgi-bin liegen? Also http://localhost/test.py müsste dann funktionieren?

2. Ich dachte auch an apxs2, weil ich PHP schon kompiliert habe und da lautet die Option tatsächlich so. Ich habs jetzt mit Python ausprobiert, und es kommt:

Code: Alles auswählen

./configure --with-apxs2=/usr/local/apache2/bin/apxs
...
...
configure: checking whether apxs is available...
checking for --with-apxs... no
checking for apxs in /usr/local/apache/sbin... no
checking for apxs in your PATH... checking for apxs... no
configure: WARNING: **** apxs was not found, DSO compilation will not be available.
configure: WARNING: **** You can use --with-apxs to specify where your apxs is.
configure: error: Neither static nor DSO option available, there is no point in 
Im bin vom Apache gibt es aber nur apxs, und mit --with-apxs=... gibt es keinen Fehler im configure...seltsam.

Noch einen Tip? Hat das schon mal jemand erfolgreich installiiert?

Danke vielmals
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

bicpi hat geschrieben:1. Meinen wir nicht doch das gleiche? Mit mod_python kann ich eine .py Datei im Documentroot aufrufen und sie wird ausgeführt? Und dazu muss sie nicht im cgi-bin liegen? Also http://localhost/test.py müsste dann funktionieren?
Nur wenn du genau diese Datei in der httpd.conf/apache.conf eingetragen hast, anders habe ich es noch nicht zum laufen bekommen, es ging immer nur diese eine Datei. Aber vielleicht habe ich auch die Konfiguration nicht verstanden. :?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Meint nicht bicpi in ersterlinie das Ausführen von PY-Skripten ausßerhalb von /cgi-bin/ ??? Das geht nicht über mod_python, sondern in der apache2.conf mit AddHandler... (glaub ich :) )

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

jens hat geschrieben:Meint nicht bicpi in ersterlinie das Ausführen von PY-Skripten ausßerhalb von /cgi-bin/ ??? Das geht nicht über mod_python, sondern in der apache2.conf mit AddHandler... (glaub ich :) )
Aber dazu muss doch erstmal das mod_python installiert sein, ne?

Also mein Ziel wäre es, Python-Dateien direkt im Browser aufrufen zu können.

Und wie habt ihr die mod_python-Installation denn hinbekommen, gab es da keine Probleme beim kompilieren?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

bicpi hat geschrieben:Aber dazu muss doch erstmal das mod_python installiert sein, ne?
IMHO eben nicht :lol:

mod_python ist für was anderes, was genau es macht bzw. machen kann, weiß ich allerdings nicht wirklich...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

IMHO??

Also kann ich Python-Dateie ausführen überall, wenn ich die Apache-Conf richtig einstelle? Welche Zeiel muss ich einfügen? Irgenwas mit AddHandler, ne?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

http://de.wikipedia.org/wiki/IMHO
IMHO - In My Humble Opinion - meiner unmaßgeblichen/bescheidenen Meinung nach
:lol:

google erster Treffer: http://buecher.lingoworld.de/apache2/sh ... 429&o=date :
Beispielsweise könnten alle Dateien mit den Endungen .cgi und .pl wie folgt als CGI-Skripte behandelt werden:
AddHandler cgi-script .cgi .pl
Natürlich statt ".pl" ".py" eintragen ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Das funktioniert !
Musste allerdings noch in den "Options" "ExecCGI" ergänzen...
Jetzt frag ich mich, ob das eine unsichere Konfiguration ist, CGI-Files bzw. Python-Files überall im Document-Root ausführbar zu haben? Ist das schlimm?

Und zum Zweiten frage ich mich, für was dann überhaupt das mod_python da ist, wenn nicht für das!?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich glaube nicht das es unsicher ist. Es ist zumindest richtig Praktisch! Ich hab z.B. auf hosteurope nicht die möglichkeiten außerhalb vom /cgi-bin/ Python Skripte zum laufen zu bekommen :( Das Ärgert mich scon gewaltig, weil es unschöne URLs produziert :(

Es gibt allerdings ein kleinen Trick! Man benutzt einfach SSI:

index.shtml

Code: Alles auswählen

<!--#exec cgi="/cgi-bin/PyLucid/index.py" -->
Allerdings gilt es dabei zu beachten, das man keine POST Daten erhalten kann :(

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Daraus folgt: -> Eigenen Server mieten :-)

Ich hab da auch noch einen Trick gefunden:

Code: Alles auswählen

<?php
require('cgi-bin/test.py');
?>
Bleibt nur noch das mysteriöse mod_python...
jgollers
User
Beiträge: 42
Registriert: Freitag 29. November 2002, 12:23
Wohnort: Kirchlengern

bicpi hat geschrieben: Bleibt nur noch das mysteriöse mod_python...
Also ich setze auf mod_python weil es...

1.) Schnell ist (schneller als normale CGI-Skripte)
2.) Weil ich meine Seiten besser strukturieren kann.
2.) Weil ich dann auf Apache-interne Dinge zugreifen bzw. diese ansprechen kann. (Handler)
3.) Wegen des Session Managements


Jörg Gollers
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Und wie installiere ich das mod_python dann? (siehe Fehlermeldungen im Eröffnungsbeitrag)

Ich habe nur die --with-apxs Option im configure-String angegeben. Muss ich noch was installieren zusätzlich? Wie hast Dus zum Laufen gebracht ich würde es auch sehr gerne benutzen. Danke :-)
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Ein Gang zurück, ich habs geschafft mit dem Kompilieren ! Die python-devel Pakete haben gefehlt, doof dass das das configure nicht angezeigt hat.. ;-)

Wie genau benutze ich jetzt das Modul, muss ich noch Einträge in der httpd.conf machen? Im Moment werden meine .py-Dateien dank

Code: Alles auswählen

AddHandler cgi-script .py
Options ExecCGI
direkt ausgeführt, kann ich nun sozusagen auf das mod_python "umsteigen".
Ein

Code: Alles auswählen

LoadModule modules/mod_python
muss wohl her, sonst noch was? Sowas wie application... bei PHP?

Danke und froh bin ich schon mal , dass es endlich geklappt hat.
jgollers
User
Beiträge: 42
Registriert: Freitag 29. November 2002, 12:23
Wohnort: Kirchlengern

bicpi hat geschrieben: Ein

Code: Alles auswählen

LoadModule modules/mod_python

muss wohl her, sonst noch was? Sowas wie application... bei PHP?
Ja, ein Eintrag der Form

Code: Alles auswählen

LoadModule python_module pfad_zu_den_modulen/mod_python.so
muß in die httpd.conf aufgenommen werden. Alles weitere hängt davon ab, welchen Handler man einsetzt. Die Frage die sich nun stellt ist:

Willst du nur den cgi-Handler des mod_python nutzen oder auch andere Handler?

Der Vorteil den andere Handler bieten ist z.B., daß man durch ihren Gebrauch nicht nur ganze Python-Skripte ausführen kann, sondern auch einzelne Funktionen in Python-Skripten ansprechen kann. Wenn man diese Fähigkeiten des mod_python nutzen möchte, muß das anders konfiguriert werden, als die Nutzung von "reinem" cgi.


Jörg Gollers
bicpi
User
Beiträge: 23
Registriert: Samstag 28. Mai 2005, 12:35

Danke für Deine Anwort :-)
Willst du nur den cgi-Handler des mod_python nutzen oder auch andere Handler?
Welche Handler gibt es denn zum Beipiel? Ich würde natürlich gerne weg vom CGI, da es ja schneller sein sollte ohne.

Muss ich die Python-Dateien dann besonders kennzeichnen? Mit mod_python kann ich ja dann den Programmpfad weglassen und müsste Dateien im Document-Root mit .py-Endung problemlos aufrufen können, ne?

Danke

bicpi
jgollers
User
Beiträge: 42
Registriert: Freitag 29. November 2002, 12:23
Wohnort: Kirchlengern

bicpi hat geschrieben: Welche Handler gibt es denn zum Beipiel?
Es gibt einige Request Handler! Schau doch mal unter

http://www.modpython.org/live/current/d ... dlers.html

nach. Die Seite ist Teil der mod_python Doku und unter

http://www.modpython.org/live/current/d ... ython.html

abrufbar. Die Doku müßte eigentlich beim Quellcode mit dabei sein. (Die wird nur NICHT automatisch installiert (z.B. unter /usr/doc oder /usr/share/doc/). Ich hab sie dort manuel hin kopiert.

Ein einfaches Beispiel -- zu Testen des mod_python -- ist unter

http://www.modpython.org/live/current/d ... sting.html

zu finden. Dann gibt's noch eines für den Publisher Handler

http://www.modpython.org/live/current/d ... t-pub.html

und eins mit Authentication

http://www.modpython.org/live/current/d ... cated.html


Man sollte einmal die Doku überfliegen und die Beispiele ausprobieren. Dann hat man eine grobe Ahnung davon, wie das mod_python funktioniert.


Jörg Gollers
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Da hab ich noch gleich eine Frage... Was ist mit fastcgi??? Was bringt das?

Ach übrigends direkt auf der Startseite http://www.modpython.org wird man auf einen Artikel über mod_python verwiesen ;)

EDIT: Ich hab mal die ForumFAQ erweitert!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
jgollers
User
Beiträge: 42
Registriert: Freitag 29. November 2002, 12:23
Wohnort: Kirchlengern

jens hat geschrieben:Da hab ich noch gleich eine Frage... Was ist mit fastcgi??? Was bringt das?
fastcgi ist eine Erweiterung von cgi bei der besonders die Performance im Vordergrung steht.

fastcgi-Homepage: http://www.fastcgi.com/

Jörg Gollers
Antworten