PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CGI Verzeichniswechsel geht nicht!



firescanner
19.09.02, 02:13
Hi @ all,

ich hab hier ein kleines Problem mit nem Perl Script das Logfiles als html Seite darstellen soll.
Und zwar kann ich nicht auf das Logfile-Verz. zugreifen.

Location:
CGI => /www/cgi-bin/perl-script
LogFile => /home/user/log/Logfile

Muss das Logfile im CGI-BIN Verzeichnis (oder darunter) liegen?:confused:
Dort funzt das Script. Aber ich will die Logs nicht in das CGI Verz. legen!

Habt Ihr ne Ahnung wie das gehen soll?:(

michael.sprick
19.09.02, 14:26
wie sieht das Script aus?

Deine eigene Maschine oder ext. Provider? Hast Du, bzw. der webserver, der das CGI ja ausführt, die entsprechenden Rechte?

Gruss, B. :-)

sauertopf
19.09.02, 15:31
Hast du absolute oder relative Pfadangaben verwendendet?
absolut /a/b/c
relative ../../a/b/c

firescanner
19.09.02, 16:43
hi,

@bilbo: -mein Rechner, Apache 1.3.26,Perl 5.6.1, dyndns-adresse

@sauertopf: -absolute pfade

wobei die cgi-bin in /www liegt



das script:

#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

my @file=</home/user/log/logfile>;
print "Content-type: text/html\n\n";
my $temp;
foreach $temp (@file)
{
open LOG,"<$temp" or die "kann logfile nicht öffnen";
print '<p>',$temp,'</p>';
while(<LOG>)
{
print $_,'<br>';
}
close LOG;
}

michael.sprick
19.09.02, 22:44
uiuiui....

also, ganz sicher bin ich mir da nun auch nicht, aber das Script müsste doch eher so ausschauen, oder?


#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

open(INPUT,"</home/user/log/logfile");
my @file=<INPUT>;
close(INPUT);

print "Content-type: text/html\n\n";

my $temp;
foreach $temp (@file)
{
chomp $temp;
open(LOG,"<$temp") or die "kann logfile nicht öffnen";
print '<p>',$temp,'</p>';
while(<LOG> )
{
print $_,'<br>';
}
close LOG;
}

das -w flag in /usr/bin/perl weist Perl an, ordentlich die fehler im error_log des webservers zu loggen. was steht drin?
du musst auch sicherstellen, das der User, unter dem websever läuft, zugriff auf das logfile hat.
wie sieht das Logfile überhaupt aus? os?

datei1.txt
datei2.txt
datei3.txt
datei4.txt
datei5.txt
.
.
.

bedenke das hinter jeder zeile ein \n ist - daher immer chompen... sonst geht garnix.

gruss, b. *g*

firescanner
20.09.02, 01:19
Danke erstmal.

Also ich hab das script geändert und bekam eine leere Seite.
Daraufhin hab ich noch ein "or die" an
open(INPUT,"</home/user/log/logfile") or die "kann logfile net ö!";
Dann sagt mir der Browser das er das logfile nicht öffnen kann.

Das error_log meint "readline() on closed filehandle INPUT at logshow line 7"
Also hier:
my @file=<INPUT>;
?????????????????

Jetzt hab ich die Rechte kontrolliert.
der httpd wird vom user "nobody" ausgeführt.
Also hab ich das /log verz. auf group nobody und die Datei logfile auch.
Nix geht.
trotzdem Danke für die IDEE.

Ich möchte halt kein /user verz. im Apache als script verz. angeben. Das sollte alles im /www verz. bleiben.