[APACHE] CGI will nicht so recht

clouder

clouder

Mitglied
Hallo, ich versuche schon seit Tagen mein Python Script zum laufen zu bekommen.
Lokal (Windows) klappt alles ganz wunderbar aber auf meinem Debian Server läd er einfach nicht, laut den Apache-Logs:
Code:
[Wed Oct 07 18:35:58 2009] [error] [client 87.181.45.18] (2)No such file or directory: exec of '/usr/lib/cgi-bin/html.py' failed
[Wed Oct 07 18:35:58 2009] [error] [client 87.181.45.18] Premature end of script headers: html.py
Kann mir jemand helfen?
 
Wie sieht denn html.py aus? Gibt es einen anständigen exit-Status zurück? Gibt es die HTTP-Header korrekt aus?
 
Code:
#!/usr/local/bin/python
import string
import subprocess
import cgi
... meine Funktionen...
Code:
print('Content-type: text/html')
print()
... erstellen des HTML-Codes (Funktionen)

exit hab ich nicht, sys.exit(1) ?

Achja: Auf meinem lokalen XAMPP gehts ja, ich hab ich die Vermutung der findet den Python Interpreter nicht
 
Zuletzt bearbeitet:
Kannst du das Skript normal auf der Kommandozeile ausführen? Und müssen nach dem Content-Type nicht noch 2 Zeilenumbrüche folgen, oder setzt Python die automatisch?
 
ja, es geht normal, "include" ich den python script per shell_exec in PHP gehts
also in meinem Buch stehts so... aber ich probier das mal eben
Edit: nein, bewirkt nichts
 
Zuletzt bearbeitet:
Ohje... du rufst das Python-Skript via PHP auf? Wie sieht denn da der Aufruf aus?
 
aktuell bleibt mir nichts anders übrig, da ist alles ganz normal
wie gesagt: es hakt warscheinlich bei zeile 1, die den python interpreter verweist
 
shell_exec macht ja im Prinzip nichts anderes als einen Aufruf von '/bin/sh gewuenschterbefehl'. /bin/sh ist aber kein gültiger Interpreter für dein Python-Skript. Allerdings sollte zumindest die Bash (sofern diese nach /bin/sh verlinkt ist) in der Lage sein, anhand der Shebang zu erkennen, dass es einen anderen Interpreter aufrufen soll. Du könntest einfach mal schauen, ob 1. deine Default-Shell /bin/sh auf die Bash verweist, 2. einfach mal anstatt shell_exec() Funktionen wie system() o.ä. nutzen, die das Skript direkt aufrufen, 3. beim Aufruf den Interpreter explizit angeben und 4. prüfen, ob der Webserver überhaupt /usr/local/bin/python aufrufen kann, indem du ihm mal zum Testen einen direkten Python-CGI-Support einbindest und das Python-Skript damit ohne PHP aufrufst.
 

Ähnliche Themen

Apache /var/www zu /home/ich/www wechseln

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

AWK Tip gesucht

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

xrandr: cant open display

Zurück
Oben