Kävijälaskuri

-Oheinen CGI-scripti toimi Turun Yliopiston Apache WWW-palvelimessa syksyyn -04 asti. Omilla sivuillani laskurin toiminta pysähtyi tällöin. Toiminta jatkui, kun tarkastettiin tiedostojen ja hakemistojen oikeudet (tämä jätetään lukijalle kotiläksyksi). Vastaavan toiminnon pystyy toteuttamaan PHP:llä. Tähän en ole vielä ehtinyt tutustua.
-Laskuri antaa vain suuntaa antavia tuloksia, koska osa hauista tapahtuu cache-palvelimesta, jolloin hakujen todellinen määrä saattaa olla laskurin näyttämää huomattavastikin suurempi.
-Toimit täysin omalla vastuullasi.
-Otan mielelläni vastaan kommentteja ja parannusehdotuksiaPTMUSTA at UTU.FI

HTML-sivun päätteen pitää olla .SHTML, jotta scripti toimisi.
Scripti tallentaa cgi/data -hakemistoon yhden loki-tiedoston kutakin laskurillista webbisivuasi kohden.
Loki-tiedosto sisältää käyntikertojen lukumäärän ja viimeisen käynnin päivämäärän ja kellonajan
Scripti palauttaa html-sivulle käyntikertojen määrän puhtaana lukuna, jota voi muotoilla normaalisti html-koodissa. Palautus tapahtuu siihen kohtaan, missä kutsuva tagi sijaitsee.
Sivun yläotsikossa 'title' ei voi laskurissa käyttää muotoiluja

Asennus

1) Kirjoita sivulle kutsuva tagi
<!--#include virtual="cgi/count.cgi"-->
2) Tee WWW-hakemistoosi hakemisto cgi oikeuksin drwx--x--x
3) Tee cgi:lle alihakemisto data oikeuksin drwxr-xr-x.
4) Kopioi alla oleva Perlillä kirjoitettu scripti tiedostoksi count.cgi hakemistoon cgija aseta sen oikeuksiksi rwx------

Ilmeisesti myös normaalit oletusoikeudet rwxr-xr-x ovat riittävän tiukat, mutta nämä ovat tarkoitettu paranoidikoille. Tärkeintä on, että kukaan muu ei pääse muuttamaan tiedostoja ajettaviksi ohjelmiksi.

Gauguin:
femmes-tahiti

CGI-scripti "count.cgi"

Muut '#':llä alkavat kommentti-rivit saa poistaa, paitsi ensimmäisen.
#!/usr/local/bin/perl #ks
http://ptm2.cc.utu.fi/~ptmusta/counter.shtml #Oikeudet: log-file 744, 
count.cgi 700, data-hak 711, cgi-hak 711

#Tässä aktivoidaan ssi:
print "Content-type: text/html\n\n";
#Jos käytät 'DOCUMENT_URI':n tilalla 'DOCUMENT_NAME', saat logitiedoston 
#nimen lyhyemmäksi, kun 'omistaja_' jää pois
$a=$ENV{'DOCUMENT_URI'};
$t=$ENV{'DATE_GMT'};

#Korvataan tiedoston osoitteen alusta takakeno tyhjällä, eli poistetaan se
$a =~ s/\/~//;
#Poistetaan teksti ".shtml" 
$a =~ s/.shtml//;
#Korvataan tiedoston nimen lopusta takakeno alaviivalla
$a =~ s/\//_/g;
#Määrätään laskurin data-hakemiston nimi (cgi-hakemiston alihakemisto)
$b="data";
#Yhdistetään osaset uudeksi loki-tiedoston osoitteeksi ja nimeksi
$d= join("",$b,'/',$a,'.log');

#Haetaan ja tulostetaan laskuri
open (GETCOUNT," <$d");
$counter=<GETCOUNT>
close (GETCOUNT);
$counter++;
print "$counter";

#Incrementoidaan filettä
open (PUTCOUNT,">$d");
print PUTCOUNT ($counter,' ',$t,' ',$r,' ',$a,"\n");
close PUTCOUNT;
PTMUSTA at UTU.FI