» AWStats « Installation auf ein Apache2 mit VirtualHost
UPDATE: 02.07.2009
kategorie: net
|
hits: 3723
|
erstellt: do. 20.nov 2008, 17:18
|
source by: markus görner
Da sich die Konfiguration von AWStats ein wenig geändert hat, habe ich die Seite am 02.07.2009 neu überarbeitet.
AWStats generiert aus den Logdateien von Web-, Mail- oder FTP Servern eine grafisch schöne und übersichtliche Statistik.
Unterstützt werden Logformate wie die des
- Apache (NCSA combined/XLF/ELF Logformat oder common/CLF)
- WebStar
- W3C Logdateiformat
- IIS
- uvm.
Lizens: GNU/GPL <Freie Software>
Index:
» Verzeichnisstruktur
» AWStats installieren
» Apache2 konfigurieren
» Logrotate konfigurieren
» AWStats konfigurieren
» Statistiken aktualisieren
» AWStats schützen
» htpasswd Passwort-Generator
Verzeichnisstruktur:
Es wird von folgender Server-Verzeichnisstruktur ausgegangen:
Domain root Verzeichnis:
- /var/www/domain1/
- /var/www/domain2/
HTML-Seiten Verzeichnis:
- /var/www/domain1/htdocs/
- /var/www/domain2/htdocs/
Apache2 Log Verzeichnis:
- /var/www/domain1/logs/
- /var/www/domain2/logs/
AWStats-Statistik Verzeichnis:
- /var/www/domain1/htdocs/awstats/
- /var/www/domain2/htdocs/awstats/
Die Apache2 Konfigurationsdateien befinden sich:
Direktiven für VirtualHost (domain1.de/domain2.de/usw.):
- /etc/apache2/sites-available/domain1.de
- /etc/apache2/sites-available/domain2.de
Ergänzende Konfigurationsdateien:
- /etc/apache2/conf.d/apache.conf
- /etc/apache2/apache2.conf
logrotate rotiert und komprimiert automatisch die Log Dateien:
Die AWStats Konfigurationsdateien befinden sich:
AWStats Programm:
- /usr/lib/cgi-bin/awstats.pl
VirtualHost Konfiguration:
- /etc/awstats/awstats.domain1.de.conf
- /etc/awstats/awstats.domain2.de.conf
AWStats Log-Update:
- /etc/cron.hourly/awstatsupdate
- /usr/lib/cgi-bin/awstats.pl
- /usr/lib/cgi-bin/awstats_buildstaticpages.pl
AWStats installieren:
Um AWStats installieren und konfigurieren zu können benötigst du root Rechte.
su root
Mit
aptitude install awstats
installierst du das Paket AWStats.
Apache2 konfigurieren:
In der /etc/apache2/sites-available/domain1.de (domain2.de, usw.) unter der Direktive <VirtualHost> werden für jede Domain die Pfadangaben für die Logdateien hinzugefügt ggf. geändert:
#/etc/apache2/sites-available/domain1.de
NameVirtualHost *:80
#-------------------- www.domain1.de ----------------------
<VirtualHost *:80>
ServerName www.domain1.de
DocumentRoot /var/www/domain1/htdocs
# andere VirtualHost Direktiven
# Pfad für die Logdateien
ErrorLog /var/www/domain1/logs/error.log
CustomLog /var/www/domain1/logs/access.log combined
</VirtualHost>
#----------------------------------------------------------
#/etc/apache2/sites-available/domain2.de
#-------------------- www.domain2.de ----------------------
<VirtualHost *:80>
ServerName www.domain2.de
DocumentRoot /var/www/domain2/htdocs
# andere VirtualHost Direktiven
# Pfad für die Logdateien
ErrorLog /var/www/domain2/logs/error.log
CustomLog /var/www/domain2/logs/access.log combined
</VirtualHost>
#----------------------------------------------------------
Bei der AWStats Installation wurden in der Datei /etc/apache2/conf.d/apache.conf automatisch folgende Einträge hinzugefügt.
# /etc/apache2/conf.d/apache.conf
# Dies ermöglicht den Zugriff auf das Icons Verzeichnis
<Directory /usr/share/awstats/icon>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /awstats-icon/ /usr/share/awstats/icon/
# Damit CGI-BIN erreichbar ist
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
Erstelle das Apache2-Log-Verzeichnis und setze die Besitzer- und Gruppenzugehörigkeit.
mkdir -m 775 /var/www/domain1/logs
chown -R Domain1User:www-data /var/www/domain1/logs
Jetzt muß der Apache neu gestartet werden.
/etc/init.d/apache2 restart
Nun setzt du noch die access.log / error.log Dateirechte.
chmod 644 /var/www/domain1/logs/access.log
chmod 644 /var/www/domain1/logs/error.log
Logrotate konfigurieren:
Mit Logrotate automatisieren wir die Rotation, Kompression und Entfernung der Logdateien.
Gehe in das Verzeichnis /etc/logrotate.d/
und öffne die Datei apache2, oder falls nicht vorhanden, erstelle diese mit
touch /etc/logrotate.d/apache2
In die /etc/logrotate.d/apache2 kommt nun pro Domain folgender Inhalt:
# /etc/logrotate.d/apache2
# Rotation, Kompression und Entfernung der Logdateien
# www.domain1.de
/var/www/domain1/logs/*.log {
notifempty
daily
rotate 7
create 0644 www-data www-data
compress
sharedscripts
}
# www.domain2.de
/var/www/domain2/logs/*.log {
notifempty
daily
rotate 7
create 0644 www-data www-data
compress
sharedscripts
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi
endscript
}
/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 root adm
sharedscripts
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi
endscript
}
AWStats konfigurieren:
Erstelle das AWStats-Statistik-Verzeichnis
mkdir -m 775 /var/www/domain1/htdocs/awstats
Im Verzeichnis /etc/awstats/ befinden sich die Konfigurationsdateien für die
VirtualHost-Domains.
Jetzt machst du von der awstats.conf.local eine Kopie, und benennst die in awstats.domain1.de.conf, für die zweite Domain dann awstats.domain2.de.conf, usw..
cp /etc/awstats/awstats.conf.local /etc/awstats/awstats.domain1.de.conf
In der frisch kopierten awstats.domain1.de.conf folgende Eintäge ändern ggf. hinzufügen:
# /etc/awstats/awstats.domain1.de.conf
# Pfad zur Logdatei (siehe VirtualHost-Konfiguration)
LogFile="/var/www/domain1/logs/access.log"
# Gibt den Log-Dateitypen an
LogTypet=W
# Gibt das Logformat an
LogFormat=4
# Angabe der Hauptdomain
SiteDomain="domain1.de"
# Um alle Einträge zu erfassen, müßen hier
# sämtliche Domainnamen angegeben werden (www.|ftp.|usw.).
HostAliases="domain1.de www.domain1.de"
# Das Verzeichnis zu den AWStats-Statistiken
DirData="/var/www/domain1/htdocs/awstats"
Statistiken aktualisieren
Jetzt mußt du noch dafür sorgen, die Statistiken regelmäßig aktualisiert werden.
Kopiere die AWStats Generator-Datei awstats_buildstaticpages.pl in das Globale CGI-BIN Verzeichnis /usr/lib/cgi-bin/.
cp /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/lib/cgi-bin/
Nun mußt du nur noch Cron beauftragen die Statistiken zu aktualisieren.
Dazu erstellst du in /etc/cron.hourly/ die Datei awstatsupdate
touch /etc/cron.hourly/awstatsupdate
In dieser machst du die Einträge
#!/bin/sh
# -------------------- www.domain1.de --------------------
/usr/lib/cgi-bin/awstats.pl -update -config=domain1.de
perl /usr/lib/cgi-bin/awstats_buildstaticpages.pl -config=domain1.de -lang=de -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/var/www/domain1/htdocs/awstats
# -------------------- www.domain2.de --------------------
/usr/lib/cgi-bin/awstats.pl -update -config=domain2.de
perl /usr/lib/cgi-bin/awstats_buildstaticpages.pl -config=domain2.de -lang=de -awstatsprog=/usr/lib/cgi-bin/awstats.pl -dir=/var/www/domain2/htdocs/awstats
Die Zeile hinter perl ist eine Zeile ohne Umbruch.
Setze jetzt noch die awstatsupdate Dateirechte.
chmod 755 /etc/cron.hourly/awstatsupdate
Jetzt werden die AWStats-Statistiken jede Stunde aktualisiert.
Die Statistiken kannst du über
- http://www.domain1.de/awstats/
- http://www.domain1.de/awstats/awstats.domain1.de.html
aufrufen.
AWStats schützen
So sieht es aus, wenn das AWStats-Verzeichnis nicht geschüzt wird!
Damit bei dir nicht jeder solch einen Überblick auf deine Webaktivitäten erhält, mußt du das /awstats/ Verzeichnis noch schützen.
Damit das Überschreiben der Regeln durch die .htaccess-Datei erlaubt ist, müssen für den Passwortschutz in der /etc/apache2/conf.d/apache.conf folgende Einträge hinzugefügt ggf. geändert werden.
# /etc/apache2/conf.d/apache.conf
# Wichtig für den .htaccess Passwortschutz
<Directory "/">
Options ExecCGI FollowSymlinks
AllowOverride All
ServerSignature off
</Directory>
<Directory "/var/www">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Erstelle in /var/www/domain1/htdocs/awstats/ die Dateien .htaccess und .htpasswd.
Anmerkung:
Beachte den "." Punkt vor dem Dateinamen.
touch /var/www/domain1/htdocs/awstats/.htaccess
In die .htaccess schreibst du
# /var/www/domain1/htdocs/awstats/.htaccess
# Der Name des geschüzten bereiches
AuthName "AWStats"
# legt die Art der Authentifizierung fest
AuthType Basic
# enthält den absloluten Absolute Pfadnamen beginnen immer von der Wurzel, wie z.B. '/' (/var/www/domain1/htdocs/awstats/).Pfad auf dem Server, unter dem
# die Datei mit den Benutzernamen und Paßwort zu finden ist.
AuthUserFile /var/www/domain1/htdocs/awstats/.htpasswd
# erzwingt die Passwortabfrage
require valid-user
und die .htaccess erstellst du mit dem Programm htpasswd,
htpasswd -bc /var/www/domain1/htdocs/awstats/.htpasswd Username Paßwort
wobei Username und Paßwort mit den Logindaten zu ersetzen ist.
# /var/www/domain1/htdocs/awstats/.htpasswd
# Hier wird der Name und Paßwort eingetragen
Username:Paßwort
Der Befehl htpasswd -bc ... generiert die Eintäge in die .htpasswd automatisch.
Somit ist hier nichts mehr zu tun.
Jetzt noch die Dateirechte setzen.
chmod 644 /var/www/domain1/htdocs/awstats/.htaccess
chmod 644 /var/www/domain1/htdocs/awstats/.htpasswd
chown DomainUser:www-data /var/www/domain1/htdocs/awstats/.htaccess
chown DomainUser:www-data /var/www/domain1/htdocs/awstats/.htpasswd
Nun mußt du dich erst Authentifizieren bevor deine Statistiken erreichbar sind.
Anmerkung:
Um Usernamen und Passwort zu ändern oder hinzufügen, kannst du auch mein Online-Tool nutzen
Weitere Informationen:
Haftungsausschluß!
Die Nutzung der Inhalte dieser Website erfolgt auf eigene Gefahr.
Die Autoren übernehmen keine Gewährleistung oder Garantien dafür, dass die Inhalte fehlerfrei oder zulässig sind.
Der Nutzer übernimmt die alleinige Haftung für Schäden an seinem Computersystem oder den Verlust von Daten.
Es obliegt der alleinigen Verantwortung des Nutzers, für ausreichenden Schutz und Sicherungskopien der Daten,
des Computersystems und sonstiger Ausrüstung zu sorgen.
Nobodys perfect, falls du einen Fehler oder Verbesserungsvorschläge findest, dann würde ich mich freuen wenn du mir schreibst.

Dieser Werk bzw. Inhalt ist unter
einer Creative Commons-Lizenz lizenziert.