Seite 1 von 1
Python Script auf Webserver
Verfasst: Donnerstag 6. Februar 2020, 21:24
von Knolch
Hallo,
ich bin noch Anfänger mit Python und versuche ein Script auf einem Webserver, den ich über manitu gemietet habe zum laufen zu bringen.
So wie ich es verstanden habe, soll dies bei dem genannten Anbieter möglich sein und ich habe folgendes gemacht:
1. Simples Python Script erstellt:
Code: Alles auswählen
#!/usr/bin/python
print("Content-type:text/html\n")
print("<h1>This is the Home Page</h1>")
2. Python Script auf WebFTP geladen und die Berechtigungen 755 zugeteilt.
3. Aufrufen der entsprechenden URL
Im Ergebnis wird mir im Browser dann allerdings nur der Python Code angezeigt und er wird nicht ausgeführt. Ich weiß nicht wie ich es nun dazu bringen kann, dass der Code auch ausgeführt wird. Kann mir hierbei wohl jemand weiterhelfen?
Viele Grüße
Knolch
Re: Python Script auf Webserver
Verfasst: Donnerstag 6. Februar 2020, 21:46
von Sirius3
@Knolch: laut Webseite muß die Datei die Endung .cgi haben.
Re: Python Script auf Webserver
Verfasst: Donnerstag 6. Februar 2020, 23:54
von nezzcarth
Randbemerkung da du meintest, du fängst gerade an:
Du solltest vielleicht im Hinterkopf behalten, dass CGI-Programmierung eigentlich nicht mehr dem Stand der Technik entspricht (so hat es halt in den 90ern mal angefangen) und es bessere Alternativen gibt, die man nach Möglichkeit auch verwenden sollte. Für private Experimente und Spielereien ist das denke ich okay. Wenn du allerdings ernsthafteres Interesse an Webentwicklung mit Python hast, ist CGI meiner Meinung nach eher eine Sackgasse. Stattdessen schaut man sich dann vielleicht besser eines der populären Web Frameworks an. Wenn dieser Provider nur CGI anbietet, könnte es damit schwierig werden (wobei ich gerade gelernt habe, dass Flask scheinbar notfalls auch mit CGI funktioniert.)
Re: Python Script auf Webserver
Verfasst: Donnerstag 6. Februar 2020, 23:57
von __blackjack__
@nezzcarth: WSGI geht notfalls auch über CGI, also letztlich auch Bottle und sogar Django. Es wird halt für jede Anfrage immer die gesamte Webanwendung hochgezogen, statt das da ein paar Threads und/oder Prozesse durchgehend laufen. Ich würde es aber wahrscheinlich trotzdem machen, alleine schon wegen der schöneren API.
Re: Python Script auf Webserver
Verfasst: Freitag 7. Februar 2020, 00:55
von Knolch
Danke für eure Antworten!
Tatsächlich stehe ich noch ziemlich am Anfang bei dem ganzen Thema Webentwicklung, da bin ich natürlich froh über jegliche Tipps von euch.
Der Anbieter den ich jetzt für den Start gewählt habe bietet tatsächlich nur CGI an, sodass ich jetzt erst einmal damit anfangen werde und mich dann gegebenenfalls auch nochmal weiter umschaue, in welche Richtungen man sich noch weiterentwickeln kann.
Wenn ich zurück zu meinem Problem komme, den Hinweis auf die Endung .cgi für das Script habe ich jetzt mal umgesetzt. Die Berechtigungen und alles weitere habe ich gelassen wie zuvor. Als Ergebnis bekomme ich jetzt einen Error 500 "Interner Server Error". Das ist zwar noch nicht was ich gerne hätte aber zumindest schon mal etwas anderes

. Leider finde ich keinen Hinweis, worin der Fehler besteht. Ich habe mir die Log files auf dem Server angesehen aber mehr als der 500 Fehlercode ist darin nicht zu finden. Laut dem Anbieter ist Python standardmäßig aktiviert, sodass das Problem woanders liegen muss.
Re: Python Script auf Webserver
Verfasst: Freitag 7. Februar 2020, 02:10
von __blackjack__
@Knolch: 500 ist ein interner Fehler wo man die Ursache in den Logs vom Webserver finden sollte. Da gibt es oft verschiedene Dateien für die Zugriffe und für Fehler.
Wobei deren FAQs auch witzig sind:
Welche Version von Python verwenden Sie?
Derzeit stehen die Versionen 2.7 sowie 3.6 in unseren Webhostingpaketen zur Verfügung.
Wie lautet der korrekte Pfad zu Python?
Der Pfad lautet
Ein Pfad für zwei verschiedene Versionen‽
Egal welches der Pfad für 3.6 ist, Python 2 willst Du nicht mehr verwenden wenn die auch ein Python 3 bieten.
Tracebacks will man eigentlich nicht im Browser anzeigen lassen, weil das Angreifern nützliche Informationen liefert, aber zum Testen bis es grundsätzlich geht, macht das vielleicht Sinn zur Fehlersuche. Schau mal in die Dokumentation vom `cgi`-Modul aus der Standardbibliothek.
Und dann würde ich zum entwickeln empfehlen das lokal zu machen und nicht direkt auf dem Webserver.
Arbeitest Du mit Windows? Welche Zeilenenden hat denn Deine Textdatei?