From: Raphael Becker (beckerra_at_rumms.uni-mannheim.de)
Date: 03. Dec 1999
Matthias Dumke wrote:
> Darf ich Euch bitten, mir Hinweise zu geben, wie man die eigenen Logfiles
> von der eigenen Homepage lesen kann. Die Homepage ist auf dem Heidelberger
> Universitaetsserver (...rzuser...). Ich moechte keinen Seitenzaehler
> einrichten, aber trotzdem wissen, wieviele Personen sich die Page anschauen.
Es gibt wie immer mehrere Ansätze (hier mal 5).
Welcher Server läuft denn da? Apache?
Ich glaube jedoch kaum, daß Du Zugang zum Logfile bekommen wirst, wenn
es nicht dein eigener Server ist.
***********************************************
(1) webalizer
Falls doch, dann hilft dir, wenn Du es ausführlich brauchst, zB
webalizer weiter. Die Installation ist trivial, würde ich notfalls
trotzdem erklären.
***********************************************
(2) cat, grep, wc
Wenns ohne Aufwand sein soll:
cat /var/log/httpd.access_log|grep "/pfad/zum/dokument\.html"|wc
--lines
Das gibt Dir die Anzahl der Zeilen des Logfiles aus, die den
Suchstring enthalten.
************************************************
(3) CGI+SSI (so habe ich es laufen)
Du könntest zB ein CGI aufrufen, daß in einer externen Datei
(counter.dat) jeden "Treffer" zählt.
Dazu brauchst Du aber die Rechte, um ein CGI ausführen zu können und
(ich wüßte auf Anhieb nicht, wie es sonst gehen soll) eingeschaltetes
SSI (Server Side Includes).
Meine Lösung sieht wie folgt aus und basiert auf SSI und CGI(Perl).
Man sollte es kaum glauben, aber ein grafischer Counter ist wesentlich
leichter zu realisieren, als ein Textcounter. Grund ist, daß man einen
grafischen Counter einfach mittels des IMG-Tags ansprechen kann: <IMG
src="/cgi-bin/counter.cgi">, das CGI muß dann aber ein gif oder jpeg
byteweise nach stdout schreiben, das (zusammengesetzt) dann die Grafik
ergibt. Es gibt jedoch meines Wissens keine Möglichkeit einen Browser
zu veranlassen, von sich aus (und ohne Zuhilfenahme von Javascript)
einen normalen Text in eine Seite einzufügen, der von einem anderen
Source (zB CGI) stammt.
Mein Code:
a) In der html-Seite:
----------------------
Letztes Update am <strong><!--#flastmod file="linklist.shtml"
--></strong><br>
Du bist Besucher Nummer
<strong><!--#exec cgi="/cgi-bin/counter.cgi" --></strong>
----------------------
b) das CGI (nicht lachen, das ist das erste Skript, was ich selbst
programmiert habe und was heute noch zuverlässig und regelmäßig
läuft):
------------------------
#!/usr/bin/perl
print "Content-type: text/html\n\n";
$remote_addr=$ENV{'REMOTE_ADDR'};
open (COUNTER, "counter.dat");
$counter=<COUNTER>;
$lastip=<COUNTER>;
chop($counter);
chop($lastip);
close (COUNTER);
if ($remote_addr eq $lastip) {
print $counter."(R)";
} else {
$counter++;
print $counter;
open (COUNTER, ">counter.dat");
print (COUNTER $counter."\n");
print (COUNTER $remote_addr."\n");
close COUNTER;
}
------------------------
Nunja, die Ausgabe nach stdout (print ohne Fileangabe) kannst willst
Du ja nicht, kannst Du daher IMHO weglassen.
Das Skript "merkt" sich außerdem, von woher der letzte Zugriff war und
entscheidet, ob es eins weiterzählen soll oder eben nicht. Somit wird
ein Reload nicht unbedingt mitgezählt.
*************************************************
(4) nur CGI
Wenn CGI aber kein SSI, dann die gesamte Seite quasi-dynamisch machen,
d.h. von einem CGI ausgeben lassen, welches "nebenbei" noch mitzählt.
Ist aber Overkill, finde ich:
Ganz grob und ungetestet:
#!/usr/bin/perl
open (SEITE, "deineseite.html");
print <SEITE>;
close (SEITE);
<ab hier code, der zählt>
*******************************************
(5) externe Counter und Statistik-Dienste
Wenn alles nichts hilft, dann nimm einen externen Counter, zB den von
http://uk.nedstat.net/
Den mußt Du aber vorher anmelden (kostenlos) und einen eindeutigen
Namen nennen (hier zB phantasiecountername)
Im html-Code sieht das dann so aus:
------------------------------------
<a
href="http://uk.nedstat.net/viewstat.asp?name=phantasiecountername">
<img
src="http://uk.nedstat.net/scripts/nedstat.dll?name=phantasiecountername"
border=0 alt="" width=22 height=22></a>
------------------------------------
Auf der Seite hat man dann ein winziges Icon (22x22), daß als Link zum
Server des Counters dient. Dort hat man dann recht ausführliche
Zugriffsstatistiken.
Wenn Du das Icon nicht willst, dann versuch mal, ob Du es durch
"width=0 height=0" "ganz klein" (unsichtbar) machen kannst.
*********************************************
Nundenn ... entweder Du kommst ans Logfile ran (bzw Du bekommst als
Service eine Zusammenfassung aller Logfile-Einträge deiner Seiten)
oder Du nimmst einen Counter, der ja nicht zwangsläufig sichtbar sein
muß.
Gruß
Raphael Becker
-- Online-Doku: http://home.pages.de/~online-doku Gesucht - Gefunden: Linux-Anleitungen Fehlt was? Dann nix wie her mit dem URL mailto:online-doku_at_gmx.de
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET