cgi-bin einrichten "500 internal server error"

  • Hallo,

    nachdem ich auf einem aktuellen Buster erfolgreich apache2 und php7 installiert habe hänge ich nun beim cgi.

    Ich habe mich an diese Anleitung gehalten, da sie laut Google Suchergebnis aus diesem Jahr ist, die anderen Ergebnisse sind bereits ein paar Jahre älter.

    Da ich apache2 bereits installiert hatte bin ich bei der Zeile a2enmod cgid eingestiegen.

    Das script habe ich wie es da steht übernommen und ausführbar gemacht. Die(?) shebang habe ich entsprechend für python3 geändert. Das Script manuell gestartet funktioniert.

    Wenn ich aber http://192.168.178.48/cgi-bin/test.py im Browser (Chrome) eingebe, bekomme ich die Fehlerseite "500 Internal Server Error".

    Was mich während der Einrichtung irritiert hat: ich musste im Verzeichnis /usr/lib/cgi-bin alles mit sudo machen, was in der Anleitung nirgends erwähnt wird. Ich vermute also, dass es sich um ein Rechteproblem handeln könnte, das den Fehler verursacht? Da ich, gerade auf einem webserver, hier nichts falsches machen möchte frage ich lieber erst mal um Hilfe.

    Meine andere Vermutung geht in die Richtung, dass im Apache2 noch irgend etwas zusätzlich konfiguriert werden muss. Da habe ich noch diesen Beitrag gefunden. Ich habe in der 000-default.conf auch diesen Directory Block probiert, der ändert aber nichts, so habe ich ihn wieder entfernt.

    Ich möchte durch wahlloses rumprobieren hier auch nicht noch was kaputt machen, deshalb meine Frage: Wie bekomme ich das cgi-bin zum laufen?

  • Was steht denn im Error-Log vom Apache?

    Hmm an dem import von art kann es aber eigentlich nicht hängen, ich habe auch ein anderes script ohne importe versucht da gibt es den gleichen Fehler.

  • Zitat von raspiproject

    Schau mal in die Log-Datei für Apache-Fehler. Da solltest du Hinweise auf den Fehler finden

    Ich ziehe meinen Kommentar von eben zurück, hab mich beim 2 Script extrem blöd vertippt, mit "prinz" statt "print" kommt man einfach nicht weiter :wallbash:

    OK, Das Script ohne import funktioniert. aber wie importiere ich denn richtig? Oder liegt es speziell an diesem "Art" das ich extra installieren musste? Wie schon oben geschrieben, wenn ich das script in der Konsole manuell ausführe funktioniert es.

  • Hallo,

    du weißt aber schon, dass Python + CGI seit > 10 Jahren obsolet ist und man das nur als allerletzten Notnagel benutzt? Stand der Dinge ist Python-Applikationen via WSGI auszuführen. I.d.R. via WSGI-Applikationssserver wie z.B. gunicorn. Und man verwendet ein WSGI-kompatibles Framework wie z.B. Flask oder Bottle oder Django. Klingt kompliziert - ist es aber nicht. Jedenfalls ist quasi alles besser als CGI.

    Gruß, noisefloor

    P.S.: dem im 1. Post verlinkten Tutorial würde ich auch nicht wirklich trauen - es nämlich kein Ubuntu 18, 19 oder 20...

  • Code
    root@Microknoppix:/etc/apache2# a2enmod cgi
    Enabling module cgi.
    To activate the new configuration, you need to run:
      service apache2 restart
    Code
    root@Microknoppix:/usr/lib/cgi-bin# cat test.py
    #!/usr/bin/python3
    print( "Content-Type: text/plain", end="\r\n" )
    print( "", end="\r\n" )
    print( "Guguseli", end="\r\n" )

    So laeuft es auf Knoppix

  • du weißt aber schon, dass Python + CGI seit > 10 Jahren obsolet ist und man das nur als allerletzten Notnagel benutzt? Stand der Dinge ist Python-Applikationen via WSGI auszuführen. I.d.R. via WSGI-Applikationssserver wie z.B. gunicorn. Und man verwendet ein WSGI-kompatibles Framework wie z.B. Flask oder Bottle oder Django. Klingt kompliziert - ist es aber nicht. Jedenfalls ist quasi alles besser als CGI.

    Nein wusste ich nicht, dann stelle ich das mit dem cgi wieder ein und mach mich mal mit dem anderen schlau.

    Danke

    Das Thema hat sich somit erledigt. Danke an alle.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!