Warum gibt mein "test.cgi"-Programm eine Fehlermeldung aus?: Unterschied zwischen den Versionen

Aus HSMWiki
Wechseln zu: Navigation, Suche
K
 
 
Zeile 8: Zeile 8:
 
</pre>
 
</pre>
  
Ein einfaches Kopieren reicht nicht. Um ein "CGI"-Programm auszuführen (execute), muss es auch dieses Recht besitzen (711). Dieses Recht kann man zum Beispiel im "SFTP-Bereich" des SSH-Servers "ssh-www" setzen:
+
Ein einfaches Kopieren reicht nicht. Um ein "CGI"-Programm auszuführen (execute), muss es auch dieses Recht besitzen (700). Dieses Recht kann man zum Beispiel per "SFTP" auf dem Server "ftp-www" setzen:
  
* SSH-Verbindung zum Server "ssh-www" herstellen
+
* SSH-Verbindung zum Server "ftp-www" herstellen
 
* Im Menü "Window" den Punkt "New File Transfer" anklicken
 
* Im Menü "Window" den Punkt "New File Transfer" anklicken
 
* In das Verzeichnis "cgi-bin" wechseln
 
* In das Verzeichnis "cgi-bin" wechseln

Aktuelle Version vom 21. Juli 2016, 22:42 Uhr

Ssh win32 chmod.jpg

Wer obiges Programm in sein "cgi-bin"-Verzeichnis kopiert, erhält meist folgende Fehlermeldung:

INTERNAL SERVER ERROR
The server encountered an internal error or misconfiguration and was unable to complete your request.

Ein einfaches Kopieren reicht nicht. Um ein "CGI"-Programm auszuführen (execute), muss es auch dieses Recht besitzen (700). Dieses Recht kann man zum Beispiel per "SFTP" auf dem Server "ftp-www" setzen:

  • SSH-Verbindung zum Server "ftp-www" herstellen
  • Im Menü "Window" den Punkt "New File Transfer" anklicken
  • In das Verzeichnis "cgi-bin" wechseln
  • Mit der rechten Maustaste die Option "Properties" der Datei wählen
  • In der "Owner"-Reihe 3 Kreuze eintragen

Wer seine "CGI"-Skripte unter Windows erstellt, sollte den Unterschied bei der Zeilentrennung zu Unix ( "CR/LF" <=> "LF" ) beachten. Beim FTP-Upload muss deshalb der "ASCII"-Modus eingestellt werden. Alternativ kann man das "dos2unix" -Programm unter UNIX/Linux verwenden:

dos2unix -s script.cgi

Eine weitere Ursache für diese Fehlermeldung besteht durch fehlerhafte oder nicht vorhandene "include"-Daten in komplexeren "CGI"-Programmen.