PythonCGIScripte im Verzeichnis in /var/www

Hey Leute,

Ich selber bin begeisterter Python programmierer und habe ein Problem, dass ich bisher nicht lösen konnte.

Ich selber nutze Linux, weswegen mir viele Tutorial, die sich auf XAMPP und dergleichen bezogen haben nicht ganz nachvollziehen konnte…

Undzwar möchte ich gerne mein Python-Scripte auf dem Localhost in einem Extra-Verzeichnis zum laufen bringen.

Wenn ich die Python-Scripte in den Ordner / usr / lib / cgi-bin packe und dann im die URL localhost / cgi-bin / aufrufe klappt das alles…

Jedoch möchte ich gerne die Scripte im Ordner / var / www ausführen lassen (So wie es ja auch bei PHP-Scripten der Fall ist --> Die müssen ja auch nicht noch extra in den cgi-bin ordner unter usr / lib / gepackt werden…)

Deswegen hier meine Frage:

Ist es irgendiwe möglich in den Configs einen Alias oder so festzulegen, der es ermöglich python-Dateien im Ordner / var / www ausführen zu lassen?

Bisher will er die Dateien immer runterladen…

Ich benutze apache2. Das verwunderliche ist, dass die httpd.conf leer ist, wohingegen in den config dateien in sites-available und co alle Konfigurationen vorgenommen werden können…

Danke im Vorraus und schönen Abend noch!

wenn das Ganze im Verzeichnis / usr / lib / cgi-bin funkioniert, mußt du nur die Einträge in der apache.conf (oder andere .conf) finden und kopieren :

Beipiel :
alias cgi-bin / usr / lib / cgi-bin


[Einträge die das Ausführen ermöglichen]

____________________
anderer Ort


[Einträge hier hinein kopieren]

verstanden ?

Gruß

Marcus

Hey Marcus,
Danke für deine Schnelle Antwort.

Ich habe mal deine Methode ausprobiert…
Undzwar habe ich im Ordner / etc / apache2 / sites-available die Datei default geöffnet, und folgenden Eintrag gefunden:

ScriptAlias / cgi-bin / usr / lib /cgi-bin /

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow, deny
Allow from all

Das müsste ja dann der passende Eintrag sein.
Nun habe ich diesen Eintrag kopiert und ein bisschen was abgeändert…

ScriptAlias / var / www / usr / lib /cgi-bin /

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow, deny
Allow from all

Leider funktioniert es immernoch nicht ganz…

Die Datei, die aufgerufen wird funktionier einwandfrei auf einem Produktivsystem und hat auch die Rechte 755…

Kann ich sonst noch irgendetwas ausprobieren?

Danke im Vorraus!

Hallo Demnior,

da die Datei vom Apache zum Download durchgeschliffen wird, kennt Apache schlichtweg den Dateityp Python (.py) nicht und es ist kein entsprechender Interpreter hinterlegt, der das Python-Script ausführt.

Im Apache gibt es dafür ein Modul „modpython“.
Nach kurzer Suche habe ich das hier gefunden:
http://www.wer-weiss-was.de/Anfragen/www_de/archiv/2…

Ich denke hier wird bereits ganz gut auf genau deine Problemstellung eingegangen.

Ich hoffe das hilft dir schon weiter.
Sonst einfach nochmal fragen.

Gruß
Jens

Hallo Jenseblümsche
Danke für deine Antwort.
In der Vergangenheit habe ich mod_python auch schon verwendet, da ich aber die Scripte im CGI modus laufen lassen muss (Weil es auf dem Webserver bei Strato auch im CGI Modus läuft) hilft mir mod_python leider im Moment noch nicht so richtig weiter (Oder hat das damit gar nichts zu tun?) Andere User berichten, dass nach dem Umstellen bei mod_python auf den CGI Handler das FieldStorage() nicht mehr funktioniert, was bei mir aber elementar ist…

Ich könnte ja auch die Scripte einfach in den Ordner usr/lib/cgi-bin packen, nur ist der Ordner leider schreibgeschützt. Außerdem wäre es echt toll, wenn es möglich wäre die Scripte einfach in den Ordner var/www zu packen, ohne, dass es in extra Order muss.

Es muss doch möglich sein, dass man einfach einen Ordner definiert (z.B. /var/www), der wie usr/lib/cgi-bin behandelt wird.

Ich bin echt total am Verzweifeln…

Ich poste jetzt einfach mal meine komplette default-Datei vom Ordner sites-available. Vielleicht kann man daran sehen, was hier falsch läuft…

ServerAdmin webmaster@localhost

DocumentRoot /var/www

Options FollowSymLinks
AllowOverride None

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog ${APACHE_LOG_DIR}/error.log

Possible values include: debug, info, notice, warn, error, crit,

alert, emerg.

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ „/usr/share/doc/“

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128

ANFANG: GENERIERT VON PHILIPP

Alias fuer PHPMyAdmin

Alias /phpmyadmin „/usr/share/phpmyadmin/“

Danke im Vorraus!