FastCGI + Apache2 und Python

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
snatch
User
Beiträge: 25
Registriert: Sonntag 20. August 2006, 01:49

Hallo,

Ich bin gerade dabei einen Apache2 Server mit Python auf FastCGI zu erweitern. Nun stellt sich mir das Problem das ich nicht genau weis wie das zu konfigurieren ist. Gibt es da vielleicht Tutorials in dem Bereich? Oder kann mir jemand da Tips geben wie ich das mit einem vHost mache?
Ich habe bisher bei Google usw. leider nichts gefunden.

Viele Grüße,
snatch
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Was für ein OS benutzt du denn? Spricht etwas gegen mod_wsgi?

Hatte hier mal sowas für Apache in Kombination mit Django geschrieben, was sich aber sehr leicht auch auf andere anwenden lässt:
http://www.icoost.com/programmiersprach ... nd-apache/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Es hängt hauptsächlich davon ab was du machen willst. In der Regel brauchst du schonmal flup, das wird quasi überall vorrausgesetzt. Dann musst du uns verraten, was du eigentlich machen willst. Willst du Django anbinden? Werkzeug? Pylons? WSGI-Applikationen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

snatch hat geschrieben:Gibt es da vielleicht Tutorials in dem Bereich? Oder kann mir jemand da Tips geben wie ich das mit einem vHost mache?
Hallo snatch!

Ich hatte mal einen Erfahrungsbericht darüber geschrieben. Vielleicht findest du darin etwas was dir weiter hilft:

http://halvar.at/python/cherrypy_fastcgi_debian/

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

gerold hat geschrieben:
snatch hat geschrieben:Gibt es da vielleicht Tutorials in dem Bereich? Oder kann mir jemand da Tips geben wie ich das mit einem vHost mache?
Hallo snatch!

Ich hatte mal einen Erfahrungsbericht darüber geschrieben. Vielleicht findest du darin etwas was dir weiter hilft:

http://halvar.at/python/cherrypy_fastcgi_debian/

mfg
Gerold
:-)
Was spricht den gegen mod_wsgi?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Qubit hat geschrieben:Was spricht den gegen mod_wsgi?
Hallo Qubit!

Geht die Frage an mich?

Nichts! Wenn man weiß wie es geht. Aber über etwas berichten, was man noch nie gemacht hat und nicht weiß wie es geht -- ist auch nicht ideal, oder?

Ich bin ja inzwischen wieder zum guten alten *mod_proxy* zurückgekehrt. Auf dem Webserver, auf dem meine Website gehostet ist, wird PD-Admin http://www.pd-admin.de/ eingesetzt. Und mod_proxy funktioniert damit einwandfrei. mod_wsgi sowie FCGI lässt sich dort nur mit erheblichem Lernaufwand installieren.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

gerold hat geschrieben: Ich bin ja inzwischen wieder zum guten alten *mod_proxy* zurückgekehrt. Auf dem Webserver, auf dem meine Website gehostet ist, wird PD-Admin http://www.pd-admin.de/ eingesetzt. Und mod_proxy funktioniert damit einwandfrei. mod_wsgi sowie FCGI lässt sich dort nur mit erheblichem Lernaufwand installieren.
Okay, mit pd-admin, confixx, syscp, pp. und Konsorten habe ich nichts am Hut ;-)

Installieren lässt sich aber alles recht schmerzlos, zB Debian:

Code: Alles auswählen

apt-get install libapache2-mod-wsgi

apache2.conf:
=============
WSGIScriptAlias /wsgi/ /var/www/wsgi/index.wsgi/

index.wsgi:
===========
import cherrypy as cp

cp.config.update({'environment': 'embedded'})
class Root(object):
        def index(self,**kwargs):
                return 'Hello World! WSGI is runing...'
        index.exposed = True

root = Root()
application = cp.Application(root,None)
Das sollte reichen ;-)
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Qubit hat geschrieben: Das sollte reichen ;-)
Für was? Um den Server zu killen denk ich mal :) Denn dann läuft das ganze im embedded mode und das ist meisten nicht das was du willst, vor allem wenn du noch andere Dinge darauf rennen hast...
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

apollo13 hat geschrieben:
Qubit hat geschrieben: Das sollte reichen ;-)
Für was? Um den Server zu killen denk ich mal :) Denn dann läuft das ganze im embedded mode und das ist meisten nicht das was du willst, vor allem wenn du noch andere Dinge darauf rennen hast...
Kommt auf den Server an ;-)
Wo siehst du denn Probleme?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Qubit hat geschrieben:Wo siehst du denn Probleme?
Das Problem wäre das der Server unnötigerweise den Python-Interpreter einbettet statt wie bei FastCGI Prozesse zu starten. Auch wirst du so suEXEC nicht anbinden können.

Und so einfach ist das unter Debian nicht, weil Debian stable kein mod_wsgi hat und ich abraten würde wegen einem Modul auf WSGI zu wechseln.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

Leonidas hat geschrieben:
Qubit hat geschrieben:Wo siehst du denn Probleme?
Das Problem wäre das der Server unnötigerweise den Python-Interpreter einbettet statt wie bei FastCGI Prozesse zu starten. Auch wirst du so suEXEC nicht anbinden können.

Und so einfach ist das unter Debian nicht, weil Debian stable kein mod_wsgi hat und ich abraten würde wegen einem Modul auf WSGI zu wechseln.
Schaust du hier:
http://packages.debian.org/etch-backpor ... 2-mod-wsgi

Sicherheit ist ein Thread, Performance ein anderer..

Aber wenn die Sicherheit an einem Apache Modul hängt.. naja ;-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Woher holt das dann die Python-Version?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

Leonidas hat geschrieben:Woher holt das dann die Python-Version?

Code: Alles auswählen

deb http://www.backports.org/debian etch-backports main contrib non-free
snatch
User
Beiträge: 25
Registriert: Sonntag 20. August 2006, 01:49

Oha, so viele Antworten schon.
Also es geht um ein Ubuntu 8.04 System.
Das ganze ist ein Shop der eine Eigenentwicklung ist und mit CherryPy usw. noch nichts am Hut hat. Das kommt daher weil die Entwicklung schon ein wenig älter ist.
Das ganze lief schon mal unter Lighty mit FCGI, soll aber in Zukunft wieder unter Apache2 laufen.
Unter Lighty war es so das man in der Konfiguration einfach den FCGI Socket rein schreibt und dann lief das. Gibt es so eine Möglichkeit nicht für Apache2?

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

Qubit hat geschrieben:
Leonidas hat geschrieben:Woher holt das dann die Python-Version?

Code: Alles auswählen

deb http://www.backports.org/debian etch-backports main contrib non-free
Es wird auch von den Backports.og-Leuten abgeraten, sämltiche Backports zu installieren; sondern nur die die man braucht.

Persönlich nutze ich einen Python 2.6-Backport unter Debian Etch, das mit FastCGI zu verwenden war trivial.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Ich hab mod_wsgi auf debian selbst gegen python2.5 kompiliert, das tut soweit. Wobei debian stable irgend wie echt hinterm Mond lebt. :roll:
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Antworten