Zur Einleitung:
kristian hatte im Beitrag
msg #137918 vollkommen Recht.
Ein fork() war für diese Angelegenheit garnicht nötig. Hab es deshalb umgestellt, dass ich einfach ein close STDOUT mache und das script weiter arbeiten lasse.
Nun erhalte ich aber unter Windows XP mit Apache 2.2.8 bei jedem Scriptdurchlauf eine Zeile ins error.log, die so aussieht:
[Thu Jun 03 13:42:06 2010] [error] [client 127.0.0.2] , referer: http://www.meinlokalerwebspace.de/cgi-bin/script.pl
Das Script arbeitet aber sauber und einwandfrei, keine sonstigen Auffälligkeiten!
Auf einem Apache unter Linux (dessen Version weiß ich nicht) passiert das mit dem selben Script NICHT.
Habe versucht, ein reduziertes Script zu erstellen, dass den Fehler produziert. Das ist mir leider (bis jetzt) noch nicht ganz gelungen.
Aber folgender Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use strict;
use warnings;
use IO::Handle; STDOUT -> autoflush (1);
use CGI;
my $zeit = time;
print CGI -> new -> header . <<HTML_TEIL;
<html>
<head>
</head>
<body>
<p>Bin da um $zeit mit PID $$</p>
</body>
</html>
HTML_TEIL
close STDOUT;
open (my $fh,">test.parent.$$" . ".txt");
print $fh "test";
close $fh;
erzeugt zumindest diese Zeile im error.log:
[Thu Jun 03 13:44:13 2010] [error] [client 127.0.0.2]
Einfach nur ein Blank ganz rechts.
Dies passiert auch wieder nur mit dem Apache unter XP, nicht bei Linux. Und auch das reduzierte Script arbeitet ansonsten einwandfrei. Ausgabe kommt, Datei wird angelegt, alles ok.
Hat jemand eine Idee, was den Apache zu diesem "aussagekräftigen" Eintrag veranlassen könnte?
Last edited: 2010-06-03 14:03:43 +0200 (CEST)