Flask via cgi auf shared webspace läuft nicht

Django, Flask, Bottle, WSGI, CGI…
Antworten
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hallo,

möchte gerne einfach ein Minimalbeispiel testen und diese über cgi laufen lassen. Aber irgendwie funktioniert das nicht. Irgendwas mache ich glaube ich grundlegend falsch.

Meine Ordnerstruktur auf dem Shared Server:

Code: Alles auswählen

/cgi-bin/
	venv/
	test.py
	app.cgi
	.htaccess

Code: Alles auswählen

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'wait for it...'

if __name__ == '__main__':
    app.run()

Code: Alles auswählen

#!/usr/bin/python3.7
from wsgiref.handlers import CGIHandler

activate_this = '/venv/bin/activate'
execfile(activate_this, dict(__file__=activate_this))

from test import app

CGIHandler().run(app)

Code: Alles auswählen

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f # Don't interfere with static files
RewriteRule ^(.*)$ /cgi-bin/app.cgi/$1 [L]

Ich habe die Dateien jetzt per sftp auf den Server geladen. Muss ich noch irgendwas starten?

LG und danke
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Auf jeden Fall ist '/venv/bin/activate' falsch, denn ich glaube nicht, dass im Wurzelverzeichnis ein `venv`-Verzeichnis gibt. Das sollte wohl relativ zu dem ``app.cgi`` liegen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Oh, habe da den absoluten path jetzt eingefügt. Ändert aber nichts. Bekomme 403, wenn ich meine Website via Browser öffnen möchte.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

bist du sicher, dass der Server des Hosters Python 3 kann? Es wäre ja nicht verwunderlich, wenn da noch Python 2 drauf wäre.

Bist du sicher, dass das mit dem venv so funktioniert? Aber IMHO hat das auf dem Server sowie so keinen Sinn, weil es da nichts zu isolieren gibt. Plus du baust dir eine zusätzliche Fehlerquelle ein.
Hast du schon die Anleitung aus der Flask Doku probiert (Link)

Hast du Zugriff auf den Log des Servers? Das ist bei so Sachen fast unumgänglich, dass man da zwecks Troubleshooting rein schaut.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@naheliegend: Was steht denn im Protokoll vom Webserver? Und ist das Skript von den Dateirechten her auch ausführbar?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Angeblich soll 3.7 drauf sein, steht im Serverprotokoll. Habe die Doku probiert. Zugang zu den logs habe ich nicht.

Ich kann keine permissions 735 setzen. Keine Rechte.

Ich gebe es aber erstmal auf und wechsele zu uberspace.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@naheliegend: Wenn man keinen Zugang zu Webserverlogs hat, kann man da auch nichts sinnvolles machen, denn da muss man ja eigentlich immer rein schauen wenn etwas nicht funktioniert.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten