
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. Asennus1) 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. | ![]() 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; |
