CGI in C: html Dokumente im cgi Ordner ausgeben?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Gutschy, 21. Mai 2017 .

  1. 21. Mai 2017
    Hallo Leute,

    Habe einen lokalen Server zum testen laufen. Aufgabe eines CGI Skriptes ist es in eine Html-Datei zu schreiben. Die Html-Datei liegt im gleichen Ordner wie die CGI-Skripte und das schreiben klappt auch. Leider kommt es zu einem Server 500 Fehler bei der Ausgabe der Html-Datei. Server ist der Apache2. Die Rechte für die Html-Datei sind 100777 und Eigentümer ist root. Hab dann mal versucht die Html-Datei unter /var/www/html/ abzulegen, dort konnte das Skript die Datei aber nicht öffnen.

    Jemand einen Tipp?

    Gruss,

    Micha
     
  2. 21. Mai 2017
    Hi,

    deine Vermutung mit den Rechten hätte ich jetzt auch, versuch mal den Owner auf www-data zu ändern.
    Code:
    chown www-data.www-data /var/www/seite.html
    Stimmt in der Apache config der DocumentRoot bzw funktioniert sonst alles richtig oder kommt überall der "internal Servererror" (5xx).?

    edit:
    im CGI-BIN Ordner selbst wird HTML nicht angezeigt. Alles was dort drin ist wird automatisch über den entsprechenden Perl Interpreter ausgeführt und der gibt einen Fehler zurück wenn es kein "Programm" ist.
     
  3. 21. Mai 2017
    Hab den Owner angepasst. Nö, tut sich nix. Innerhalb des CGI-Verzeichnisses läuft alles gut. Kann von dem html Verzeichnis auf das CGI-Verzeichnis verlinken. Also das Formular aus /var/www/html/ schickt die Daten nach /usr/lib/cgi-bin/ ,im CGI-Skript werden die Daten dann in die Html-Ausgabe Datei geschrieben. Ansonsten laufen im CGI-Ordner alle Test Skripte. Habe schnell mal einen Counter reingeschrieben. der Zählt über eine Text-Datei astrein hoch. Also wie gesagt, jetzt zum testen, die Html-Ausgabe Datei nach /var/www/html/ gesetzt, mit neuem Owner und natürliich angepassten Links, ohne Erfolg. Die Datei wird vom CGI-Skript nicht erreicht.
     
  4. 21. Mai 2017
    Das kann eine Sicherheitsbeschränkung sein. Gibt es auch bei PHP als open-BaseDir dort kann nur auf ein Verzeichnis zugegriffen werden.
    Möglicherweise werden CGI Scripte auch mit einem anderem Nutzer ausgeführt.

    /var/www kann nicht gelesen werden oder nur die zu schreibende Datei?
     
  5. 21. Mai 2017
    War wohl eine Überschneidung. Das CGI-Skript kann die Html-Datei in /var/www/html/ beschreiben. Wie gesagt. Schreibfehler. Aber Danke für deine prompte Hilfe!!!!
     
  6. 21. Mai 2017
    Also der Fehler ist sozusagen jetzt behoben? Die html Datei kann ja dann über apache2 ganz normal abgerufen werden im /var/www.
     
  7. 21. Mai 2017
    Genau, der Fehler lag in der Pfadänderung. Richtiger Pfad, aber die Umbenennung der Datei in Variante 2 wurde von mir vergeigt.
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.