PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 identische CGI-Scripte. Eins läuft, das andere nicht!



KlausK
14.05.2011, 15:29
Ich habe im cgi-bin-Verzeichnis zwei absolut identische CGI-Scripte liegen.
Das eine habe ich test.cgi das andere kakke.cgi genannt.
Beide wurden via ASCII hochgeladen.
Ordner-Rechte und die Rechte beider Dateien stehen auf 755.

test.cgi läuft problemlos
kakke.cgi gibt Fehler 500 aus:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Die einzigen Einträge dazu sind nur im suexec.log zu finden

[2011-05-14 16:19:47]: target uid/gid (10004/111 or 110) mismatch with directory (10004/111) or program (0/0)
[2011-05-14 16:19:49]: uid: (10004/interfile) gid: (111/111) cmd: kakke.cgi
[2011-05-14 16:19:49]: target uid/gid (10004/111 or 110) mismatch with directory (10004/111) or program (0/0)
[2011-05-14 16:20:28]: uid: (10004/interfile) gid: (111/111) cmd: test.cgi

Brauche dringend ein Erfolgserlebnis :rolleyes:

KlausK
15.05.2011, 11:50
Wie vermutet war die Lösung mal wieder gaaanz einfach. Darauf musste mich aber
erst unser Razor bringen. Vielen Dank an dieser Stelle! :)

CGI-Scripte sind besonders empfindlich. Damit diese lauffähig sind müssen sie
zunächst im UNIX-Kompatiblen Fileformat gespeichert werden, wenn der Server ein
UNIX/Linux-Betriebssystem fährt. Die meisten Uploader passen das Format aber
automatisch an.

Der Upload muss immer im ASCII-Modus erfolgen. Ansonsten ist das Script für den
CGI-Interpreter nicht lesbar. Aber auch das machen die meisten Uploader mit der
Standard-Programmeinstellung automatisch.

Die Rechte müssen immer auf 755 stehen. Alle dürfen lesen und ausführen. Nur der
Eigentümer darf auch schreiben. Die CHMOD 777 wird auf den meisten Webservern
nicht akzeptiert, das Script somit nicht ausgeführt. Nach einem Upload stehen die
Rechte idR. auf 644. Hier also darauf achten diese auf 755 zu stellen!

Der Besitzer - das war dann auch mein Problem - muss ebenfalls korrekt eingetragen
sein. Ist für ein CGI-Script der falsche Eigentümer eingetragen, wird das Script nicht
ausgeführt und es gibt stattdessen eine Fehler-500-Meldung.