Page 1 of 1

Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 17:53
by elfchen
Hallo!

Ich habe ein sehr komplexes Script: :lol:

#!/usr/bin/perl
$file = 'test.txt';
open(INFO ,">>$file") || die "Fehler $!";
print INFO "Hallon";
close INFO;

So - das Verzeichnis in das geschrieben werden soll, steht auf 777.

Wenn ich nun dieses Script in der Shell aufrufe steht schön in der test.txt Hallo.

Rufe ich das Script auf dem Server auf, dann bekomme ich lustigerweise:

Error message:
Premature end of script headers: test.cgi

obwohl es auf 755 steht und Nutzer und Gruppe korrekt sind.

Im error log vom Apachen findet sich dann auch

Premature end of script headers: test.cgi

Im Suexec.log ist nur der Aufruf verzeichnet, aber keine Fehlermeldung.

Die Datei test.txt wird auch angelegt, allerdings mit 0 Byte - also ohne Inhalt und ohne mein Hallo :-)

... und nun bin ich mit meinem Latein am Ende :?:

Vielleicht findet sich hier jemand, der mir helfen kann. Wäre echt lieb.

Elfchen

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 20:06
by Anonymous
Logik: das script bricht ab bevor es die Datei schreiben kann was imho an einem Berechtigungsproblem beim erstellen/schreiben des files liegt

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 20:13
by elfchen
smashie wrote:Logik: das script bricht ab bevor es die Datei schreiben kann was imho an einem Berechtigungsproblem beim erstellen/schreiben des files liegt
***ggg***

Ja soweit ist mir das klar.

Wie ich das jetzt beheben kann weiss ich aber noch immer nicht, da das zu beschreibende Verzeichnis schon auf 777 steht.

Elfchen

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 20:14
by Joe User
smashie wrote:Logik: das script bricht ab bevor es die Datei schreiben kann was imho an einem Berechtigungsproblem beim erstellen/schreiben des files liegt
Nö, das Script ist kein CGI und wird daher auch nicht als Solches interpretiert ;)

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 20:23
by Anonymous
Joe User wrote:
smashie wrote:Logik: das script bricht ab bevor es die Datei schreiben kann was imho an einem Berechtigungsproblem beim erstellen/schreiben des files liegt
Nö, das Script ist kein CGI und wird daher auch nicht als Solches interpretiert ;)
jedes ausführbare script ist CGI .. sofern sein apache perl versteht wovon ich ausgehe ist es nach wie vor ein Rechteproblem

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 20:29
by elfchen
Nö, das Script ist kein CGI und wird daher auch nicht als Solches interpretiert ;)
Hi - danke ... aber das ist es nicht, denn mein Hello World Script läuft einwandfrei und wenn es nicht als CGI interpretiert werden würde, dann würde es ja auch keine 0 Byte Datei anlegen und dann nur nicht reinschreiben.

Es liegt auch nicht an den übergebenen Variablen, da ich es ja gemäss dem obenstehenden Script mit einem Text ohne Variable probiert habe. Zudem lassen sich die Variablen in Mails problemlos versenden.
jedes ausführbare script ist CGI .. sofern sein apache perl versteht wovon ich ausgehe ist es nach wie vor ein Rechteproblem
Yep, dem ist so ... aber wie ich es nun beheben kann wäre wirklich interessant ... HILFE!

PS:
nicht sein Server ... ihr :-D

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 20:55
by Joe User

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 21:18
by elfchen
Vielen Dank, aber das habe ich schon alles durch.

Bei meinem Miniscript bekomme ich auch einen Syntax OK sowie in keinem Logfile einen Fehlereintrag. Die Premature end of script headers weisen ja auf einen Rechtefehler hin, nur dann sollte der ja auch irgendwo geloggt sein. Nachdem aber in keinem Logfile ein Fehler ausgegeben wird frage ich mich doch wo das jetzt herkommt, das die Files alle auf 0 Byte stehen. Würde ein Rechteproblem bestehen könnte er die Datei ja gar nicht anlegen, da er dafür ja schon schreiben muss.

Ich dachte mitunter hat Strato auf seinen Rootservern da einen Trick eingebaut oder eine altbekannte Sache, aber mir scheint dem ist wohl nicht so. Da muss ich jetzt wohl weiterbuddeln - aber wie gesagt - wo keine Fehlermeldung ist das etwas sehr schwer .......

Elfchen

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 21:27
by Joe User
Da Du das Script als CGI ausführen willst, musst Du auch die entsprechenden HTTP-Header senden, was Du nicht machst. Daher ist das Script nunmal kein CGI und wird auch nicht als ein Solches behandelt.

BTW: Wir drehen uns im Kreis...

Re: Perl Script schreibt 0 Byte Dateien

Posted: 2004-09-04 22:22
by wgot
Hallo,
Elfchen wrote:Premature end of script headers: test.cgi
das Script ist zu Ende bevor ein Header ausgegeben wurde.

Also dann mal raus mit dem Header (als 2. Zeile):

Code: Select all

print "Content-type: text/htmlnn";
Gruß, Wolfgang