Ich habe eine kleine Anwendung mit dem Flask-Framework geschrieben. Ich versuche, dies mit CGI zu hosten. Nach der Dokumentation habe ich eine .cgi-Datei mit folgendem Inhalt erstellt:
%Vor%Das Ausführen der Datei führt zu folgendem Fehler:
...
Datei "/usr/lib/pymodules/python2.7/werkzeug/routing.py", Zeile 1075, in bind_to_environ wsgi_server_name = environ.get ('HTTP_HOST', environ ['SERVER_NAME'])
KeyError: 'SERVER_NAME'
Status: 500 Interner Serverfehler
Inhaltstyp: text / plain
Inhaltslänge: 59
In meiner Bewerbung habe ich festgelegt:
%Vor%Wenn ich die Anwendung mit dem Flask-Entwicklungsserver laufe, funktioniert das perfekt. Wie du sehen kannst, bin ich sehr neu in diesem Zeug und ich suche nach anderen mit ähnlichen Fehlern, aber ohne Glück. Alle Hilfe wird geschätzt.
Diese Frage ist drei Jahre alt und wurde nie als beantwortet markiert. Wenn Sie nach einer ziemlich vollständigen Diskussion darüber suchen, wie es geht, sehen Sie sich den neuesten Post von mir an: diese verwandte stackoverflow-Frage . Es sollte für Sie arbeiten.
Sicher hat mkriheli die richtige Idee; monostop sollte nicht versuchen, die cgi-Datei auszuführen (lassen Sie den Server dies als Antwort auf eine eingehende HTTP-Anfrage tun).
Dies wird als Antwort auf die obigen Kommentare der Vollständigkeit halber gepostet.
Wie oben besprochen, sollten CGI-Skripte von einigen Servern ausgeführt werden. Hier ist die Zusammenfassung aus CGI 1.1 RFC :
Das Common Gateway Interface (CGI) ist eine einfache Schnittstelle zum Ausführen externe Programme, Software oder Gateways unter einem Informationsserver in eine plattformunabhängige Art und Weise. Derzeit die unterstützten Informationen Server sind HTTP-Server.
Für die Umgebungsvariablen (die fehlten und den Fehler ausgelöst haben), siehe Sectuib 4.1 im RFC.
Ich werde versuchen, zu zeigen, was ich getan habe und es funktioniert in Godaddy Sharing Host-Account:
Im cgi-bin-Ordner im MYSITE-Ordner habe ich die folgende cgi-Datei hinzugefügt:
%Vor%Wie Sie sehen können, hat die init -Datei im MYSITE-Ordner die flask-App.
Am wichtigsten ist es, die Berechtigungen richtig festzulegen. Ich habe 755 zu diesem Ordner Erlaubnis gesetzt sowie zu "/home/USERNAME/.local/bin/python3" Ordner !! Denken Sie daran, dass das System diese Erlaubnis benötigt, um den Kolben zu öffnen.
Um das cgi zu öffnen, habe ich die folgende .htaccess-Datei im MYSITE-Ordner:
%Vor%So wird die CGI-Datei gerendert, wenn jemand Ihre Seite betritt.