Premature end of script headers

Apache, Lighttpd, nginx, Cherokee
freakx0
Posts: 9
Joined: 2006-04-28 14:11
Location: Ulm

Premature end of script headers

Post by freakx0 » 2007-04-15 07:29

Ein native C/C++ binäres Cgi-Script will einfach nicht laufen...

Mein System: Debian Etch Apache 2.2.3 PHP 5.2.0-7
Im Apachen steht:
AddHandler cgi-script .cgi # ist also eingeschaltet, mod_cgi ist auch geladen.

Das Apache-Error-Log sagt nachfolgende 2 Zeilen:
(8) Exec format error: exec of '...' failed
Premature end of script headers


Mein Testscript funktioniert:
#!/usr/bin/perl
print "Content-type: text/htmlnn";
print "<html><body><pre>";

print "funktioniert";

print "</pre></body></html>";


Woran könnte es noch liegen, oder wo könnte ich noch logs einschalten um weitere infos zu bekommen?

Gruß
Dominik

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Premature end of script headers

Post by daemotron » 2007-04-15 09:23

Lässt sich denn das Binary so ausführen? Gab es beim kompilieren irgendwelche Fehler oder Warnings?

freakx0
Posts: 9
Joined: 2006-04-28 14:11
Location: Ulm

Re: Premature end of script headers

Post by freakx0 » 2007-04-15 09:48

ich habe keine sourcen. ich habe nur das cgi script vom hersteller bekommen und auf einem anderen webspace läuft es auch. das ist eine webseiten suchmaschine (braucht bissl mehr speicher, also könnte es auch an limits liegen...)

wie soll ich das binary ausführen? ~#: ./search.cgi liefert ein "cannot execute binary file"

gruß
dominik

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Premature end of script headers

Post by daemotron » 2007-04-15 11:01

OK, scheint also ein Problem mit dem Binary selbst zu sein. Da kommen jetzt viele Möglichkeiten in Betracht... Davon ausgehend, dass es nicht an so etwas banalem wie Berechtigungen liegt - eventuell ist die Datei in einem Format kompiliert, dass Dein Kernel nicht ausführen kann... Um die ausführbaren Binärformate zu ermitteln, kannst Du folgenden Befehl verwenden:

Code: Select all

zgrep BINFMT /proc/config.gz
Wes Geistes Kind Dein Binary ist, ermittelst Du mit

Code: Select all

file -p /dein/binary.cgi
Wenn Das Format ausführbar ist, dann kannst Du der Datei mal mit strace und ldd zu Leibe Rücken um zu sehen, wo's klemmt bzw. ob irgendwelche Bibliotheken fehlen (wobei dynamisch gelinkte libs bei einem closed-source Binary schon eine harte Nummer wären)

freakx0
Posts: 9
Joined: 2006-04-28 14:11
Location: Ulm

Re: Premature end of script headers

Post by freakx0 » 2007-04-15 12:25

vielen dank für die hilfe! :-) es funktioniert nun.

es lag an einer fehlenden lib. da 64bit version war die nicht vorhanden.

gruß und dir einen schönen sonntag!
dominik