nsg's blog

Att installera och sÀtta upp AWStats i Ubuntu

2009-06-27

awstatsJag har just spenderat nÄgra timmar med att installera och sÀtta upp AWStats pÄ en av mina servrar. Jag tÀnkte dokumentera hur jag gjorde.

AWStats Àr ett utmÀrkt program för att fÄ statistik för din webbplats. AWStats har Àven stödj för andra typer av statistik som t.ex. ftp-servrar men det kommer jag inte ta upp hÀr. Vill du veta mer kan du lÀsa pÄ den officiella hemsidan eller kolla pÄ ett demo.

AWStats official web site
Demo av AWStats

Vad ska jag med AWStats till kanske du undrar, jag har redan ett bra webbaserade statistikverktyg som t.ex. Google Analytics. Jo, saken Àr den att webbaserade statistikverktyg fÄngar inte all trafik, t.ex. om du har en blogg sÄ fÄr du ingen information om hur mÄnga som lÀser bloggen via din feed, du missar Àven besökare som har javascript avstÀngt eller har installerat nÄgot som blockerar t.ex. Google Analytics. Allt det för att de webbaserade verktygen baserar sin statistik pÄ ett litet javascript, eller liknande teknik som finns pÄ din hemsida.

AWStats anvÀnder din webbservers loggar som kÀlla för att bygga sin statistik, det gör att den fÄr med allt som finns dÀr. Nu sparas inte all information i loggarna sÄ vill du ha bra koll pÄ dina besökare sÄ kör flera statistikverktyg, t.ex. AWStats + Google Analytics. Det skadar aldrig att hÄlla koll pÄ besökarna.

Jag föresÀtter att du kör en debian-baserat system (t.ex. Ubuntu), och att du kÀnner dig bekvÀm med kommandoraden och att du kör webbservern Apache.

Installera

sudo apt-get install awstats

Konfigurera AWStats

AWStats har sin konfiguration i /etc/awstats. Det finns en fil dĂ€r som heter awstats.conf, utgĂ„ frĂ„n den för att skapa en ny fil som heter awstats.example.com.conf dĂ€r example.com Ă€r ditt domĂ€nnamn. Öppna den och Ă€ndra följande instĂ€llningar:

LogFile -- SökvÀgen till din access.log för din site.
SiteDomain -- Ditt domÀnnamn, t.ex. example.com
HostAliases -- LĂ€gg till ditt domĂ€nnamn först dĂ€r, t.ex. “example.com localhost 127.0.0.1″

Det Àr det minsta du behöver för att fÄ igÄng AWStats.

**Konfigurera Apache och generera statistik
**

Nu behöver du sÀtta upp apache sÄ att du kan se din statistik, skapa en fil i /etc/apache2/conf.d, jag döpte den till awstats.conf. Alla filer i conf.d kommer laddas nÀr apache startar. I den har jag:

Alias /awstatsclasses “/usr/share/awstats/lib/”
Alias /awstats-icon/ “/usr/share/awstats/icon/”
Alias /awstatscss “/usr/share/doc/awstats/examples/css”
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

Det rÀcker för att AWStats ska laddas nÀr du gÄr till example.com/awstats/awstats.pl. Men innan du gör det sÄ mÄste du generera nÄgon statistik att kolla pÄ, det gör du genom att köra följande kommando:

sudo /usr/lib/cgi-bin/awstats.pl -config=example.com -update

Det kommer skrivas ut den del information, första gÄngen kommandot körs sÄ kan det ta lÄng tid att köra. NÀr det Àr klart sÄ bör du hitta statistiken pÄ example.com/awstats/awstats.pl sÄ fort apache har laddats om med:

sudo /etc/init.d/apache2 reload

(Är servern viktig sĂ„ kan du kolla filerna efter syntaxfel först innan du kör reload med kommandot “apache2ctl -t”)

KrÀv inloggning och lite enklare adress

Nu Àr det inte bra att ha statistik som din webbplats öppen för alla sÄ en inloggning vore en idé, börja med att Àndra variabeln AllowAccessFromWebToAuthenticatedUsersOnly till 1, nu krÀver AWStats att du mÄste vara inloggad. Nu mÄste du se till att det gÄr att logga in, det gör du genom att Àndra lite i apaches konfiguration.

LÀgg till följande i din apache-konfiguration  i din vhost. Första 2 raderna gör sÄ att det rÀcker med att skriva example.com/awstats för att komma till statistiken och Àr valfria.

RewriteEngine On
RewriteRule ^/awstats/?$ http://%{HTTP_HOST}/awstats/awstats.pl  [R,L]

<Directory /usr/lib/cgi-bin/>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName “AWStats Login”
AuthUserFile /etc/awstats/htpasswd

Require valid-user

Skapa filen htpasswd i /etc/awstats med:

sudo htpasswd -c /etc/awstats/htpasswd anvÀndare

(för att lÀgga till fler anvÀndare, kör samma rad igen men utan flaggan -c)

Ladda om servern:

sudo /etc/init.d/apache2 reload

Nu bör du fÄ en frÄga om att logga in nÀr du försöker nÄ AWStats, prova gÀrna med att logga in med fel (och tomma) uppgifter sÄ att saker Àr korrekt uppsatta.

HĂ„ll statistiken uppdaterad med cron

Tidigare körde vi awstats.pl för att generera statistik, för att slippa göra det manuellt sÄ ber vi programmer cron att köra kommandot med regelbundna intervall. För att editera cronjobben skriv:

sudo crontab -e

Är det första gĂ„ngen blir du tillfrĂ„gad om vilken editor du vill anvĂ€nda, vĂ€lj din favorit. Syntaxen i cron Ă€r:

[MINUTER]   [TIMMAR]   [DAGAR PÅ MÅNADEN]   [MÅNADEN]   [DAG PÅ ÅRET]   [KOMMANDO]

Ett cronjobb skrivs pĂ„ en rad, och Ă€r separerat med ett mellanrum. Du skriver en * för att beskriva “alltid”, du kan Ă€ven ange datum och tider som 12-15 eller 1,2,3 eller */10. Du kan lĂ€sa pĂ„ mer om cron hĂ€r.

Exempel dÀr jag uppdaterar statistiken kl. 00:00, 06:00, 12:00 och 18:00:

0 0,6,12,18 * * * /usr/lib/cgi-bin/awstats.pl -config=example.com -update > /dev/null

1 gÄng i timman (xx:00):

0 * * * * /usr/lib/cgi-bin/awstats.pl -config=example.com -update > /dev/null

1 gÄng om dagen (midnatt):

* 0 * * * /usr/lib/cgi-bin/awstats.pl -config=example.com -update > /dev/null

Har du flera olika domÀnnamn pÄ servern?

Har du flera olika domÀnnamn pÄ servern sÄ rÀcker det med att skapa en till konfigurationsfil för AWStats, sÀtta upp vhost:en sÄ att det gÄr att logga in, eventuellt skapa en till anvÀndare och sÀtta upp en rad till i cron sÄ att statistiken för den nya siten genereras. Ett tipps Àr att inte köra bÄda hÀndelserna exakt samtidigt, speciellt inte om dina loggar Àr stora.

Det finns en del smÄ förbÀttringar du kan göra sÄ du slipper ha samma typ av information pÄ flera olika stÀllen. Du kan flytta ut konfiguration frÄn vhost:en till en separat fil, jag har kallat den awstats.conf och lagt den i en katalog som heter inc under /etc/apache2, d.v.s. /etc/apache2/inc/awstats.conf (inte att blanda ihop med /etc/apache2/conf.d/awstats.conf). Sedan rÀcker det med att inkludera den frÄn de olika vhost:s jag har med:

Include inc/awstats.conf

Fördelen Àr att du nu har konfigurationen pÄ ett stÀlle, och om du behöver Àndra nÄgot sÄ Àr det bara i inc/awstats.conf du behöver Àndra i.

Samma teknik kan anvÀndas för konfigurationen till AWStats, jag har skapat en fil som heter awstats.model.conf som ligger i /etc/awstats. Den innehÄller alla gemensamma instÀllningar som gÀller alla sidor jag har. De instÀllningarna som Àr unika för en sida har jag flyttat in i sidans konfigurationsfil. Filen slutar sedan med att jag inkluderar de generella instÀllningarna:

Include “/etc/awstats/awstats.model.conf”

Det blir mycket renare och enklare att ha översikt, och risken att du glömmer att Àndra nÄgon instÀllningen pÄ en av sidorna minskar.

Jag hoppas att det hÀr kan hjÀlpa nÄgon, Àr det nÄgot som inte funkar, eller har jag missat nÄgot. LÄt mig veta.

Bloggar om: , , , , , , ,

Please note that this is a old post from the year 2009 and the information may be outdated. All these 1354 words are written by Stefan Berggren, feel free and contact me if you like.