|
|
 |
Zur Technik
Als Logsoftware kommt awstats zum Einsatz. Das Programm ist meiner Meinung nach am besten dazu geeignet, um Logdateien auszuwerten. Aus Sicherheitsgründen
mag ich die CGI Version aber nicht (mehr ;-) verwenden und so wird awstats alle paar Stunden aufgerufen und es werden statische Seiten erstellt. Das Problem
ist, das awstats statische HTML Seiten erstellt und dabei einen Header bzw. einen Footer reinhschreibt. Da ich die Logauswertung aber in die Seite
integrieren will, passt mir das gar nicht. Trotzdem hab' ich es im Endeffekt geschafft, den Inhalt statisch zu erzeugen, ohne awstats selbst zu verändern:
Zuerst fügt man in der config-Datei die Optionen dazu, die awstats dazu veranlasst, Code am Anfang bzw. am Ende zu inkludieren. Dieser Code enthält
einfach einmal Aufrufe, um die Header und Footer dieser Seite zu inkludieren. Zusätzlich wird noch eine Marke eingebaut, damit der Kopf und der Fuß
weggeschnitten werden kann:
HTMLHeadSection="<?/* BEGIN */ $FILE="_FILE_"; $TITLE='Statistiken'; $MID="STATISTIK"; $NoLeft=true; $NoRight=true; require_once(dirname(_FILE_) . '/../inc/header.inc.php'); ?>"
HTMLEndSection="<?/* END */ require_once(dirname(_FILE_) . '/../inc/footer.inc.php'); exit; ?>"
Nun noch einen kleinen Wrapper für awstats, der mittels sed alles vor und alles nach den zwei Markierungen (BEGIN und END) wegschneidet:
#!/bin/bash
# Das ist ein perfektes Wrapperscript fuer awstats_buildstaticpages.pl
# Es entfernt den Header und den Footer und ersetzt dabei gleich _FILE_ durch __FILE__
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 | sed -ne '/^<?\/\* BEGIN/,/^<?\/\* END/{s/_FILE_/__FILE__/g;p;}'
Und nun kann ein Hilfscript verwendet werden, welches die Dateien mit richtigen Endungen und Permissions erstellt (das Programm gehört zum
Lieferumfang):
awstats_buildstaticpages.pl -config=intranet -update -lang=de -awstatsprog=awstats_wrapper.sh -dir=/home/intranet/pub_html/stat -builddate=%YY%MM -staticlinksext=php
|
 |
|