PHP-Stats : istruzioni

Questo è un riepilogo dei passi essenziali all’installazione.
Per ulteriori informazioni vi rimando alla documentazione completa che trovate nella seconda parte di questa pagina.

E’ richiesto un server con almeno PHP v5 e MySQL v4.

  1. Modificare i parametri di configurazione situati nel file “config.php“.
  2. Copiare tutti i file in una directory del sito (ad esempio “/stats”).
  3. Impostare i permessi:
    666 al file “config.php
    777 alla directory “option
    777 alla directory “browscap
    666 al file “browscap/browscap.ini
  4. Eseguire dal browser lo script di installazione “http://www.tuosito.it/stats/setup.php”.
  5. Infine configurare tramite il menù Opzioni presente in “http://www.tuosito.it/stats/admin.php”.

 


Aggiornare PHP-Stats è un po’ macchinoso, lo so. Mi sarebbe tanto piaciuto implementare un aggiornamento automatico, però mi sono reso conto che è una cosa piuttosto complicata e rischiosa… dovrei dedicarci troppo tempo, quindi per ora accantono l’idea.

La parte che prende più tempo è l’upload via FTP di PHP-Stats: sebbene la dimensione totale sia modesta, i file sono numerosi ed è questo che rallenta l’operazione.

Soluzione: caricare sul sito un unico file, l’archivio compresso, e farlo estrarre dal server stesso. Velocissimo!

Per farlo vi occorre questo script.

  1. Caricate nella root (/) del vostro sito i due file.
  2. Caricate ora ‘php-stats.zip’ con l’ultima versione sempre nella root.
  3. Fatelo decompimere: ‘http://tuosito.it/unzipper.php’.
  4. Da qui seguite le solite istruzioni di installazione… config.php, permessi, setup.php…

Attenzione! Verrà creata la cartella ‘/stats’, quindi è prima necessario cancellare o rinominare la vecchia directory contenente PHP-Stats.


Se avete in uso la vecchia v0.1.9.2 e volete aggiornarla, semplicemente cancellatela completamente dal server e seguite le indicazioni per installare la nuova versione.

Non preoccupatevi dei dati, le tabelle nel database non saranno cancellate.


Guida di PHP-Stats dalla v1.9 alla versione corrente

(link alla guida della v1.4→v1.8)
(link alla guida della v1.3)
(link alla guida delle versioni precedenti)

(le novità rispetto la versione precedente sono evidenziate)

Introduzione

Perchè PHP-Stats? Domanda legittima se pensiamo ai tanti servizi gratuiti di statistiche presenti su Internet. Primo motivo fra tutti: con PHP-Stats possiamo gestire le statistiche internamente al nostro server, il che all’atto pratico significa non dipendere da servizi esterni (quindi connessioni) che talvolta sono causa di rallentamenti sul caricamento delle nostre pagine! Inoltre molte caratteristiche di PHP-Stats sono offerte solo da servizi a pagamento.

E’ chiaro che uno “script” come PHP-Stats è esigente in termini di server (anche se molto dipende dal traffico che avete sul vostro sito), ma è altrettanto vero che i benefici sono notevoli e per garantire sempre massime prestazioni PHP-Stats è stato scritto in modo da adattarsi alle vostre esigenze: ogni monitoraggio è attivabile o disattivabile per non sacrificare velocità e nel contempo non fornire informazioni che non sono di vostro interesse.

Configurazione

Iniziamo dai parametri essenziali situati nel file config.php. Aprendo questo file con un editor di testo troviamo:

$option[‘host’]=’localhost’; Indirizzo server MySQL o IP (solitamente localhost)
$option[‘database’]=’my_database’; Nome del database MySQL
$option[‘user_db’]=’database’; Utente del database MySQL
$option[‘pass_db’]=’1234′; Password del database MySQL
$option[‘script_url’]=’http://tuosito.com/stats’; Indirizzo in cui è installato PHP-Stats

Al termine dell’installazione vi sarà chiesto di scegliere una password per accedere a PHP-Stats e si aprirà la pagina delle opzioni.

Se il vostro sito ha molti visitatori giornalieri è bene attivare solo ciò che realmente serve per il monitoraggio: tabelle di dimensioni enormi causeranno rallentamenti dello script!

I pruning (ovvero le limitazioni allo spazio del database dedicato a PHP-Stats) sono “allettanti”, ma tenete presente che più se ne attivano, maggiori saranno le richieste di dati verso il database.

Ci sono poi tutta una serie di variabili non essenziali al funzionamento dello script, ma utili per chi desidera impostazioni avanzate. Queste opzioni potete configurarle anche tramite browser una volta installato PHP-Stats (eccetto quelle in viola che vanno settate prima dell’installazione).

$option[‘prefix’]=’xxx’; xxx rappresenta il prefisso con cui verranno create le tabelle di PHP-Stats.
(default = ‘php_stats’)
$option[‘callviaimg’]=X; 1: richiama lo script attraverso un’immagine trasparente di dimensione 1×1 pixel (default)
0: richiama lo script attraverso JavascriptIl richiamo tramite immagine presenta alcuni vantaggi in termini di velocità (il JS potrebbe causare rallentamenti nelle pagine monitorate).
Qualora inseriate la stringa di monitoraggio tra i tag <head></head> dovete settare questo parametro a 0.
$option[‘persistent_conn’]=X; 1: utilizza una connessione persistente a MySQL
0: la connessione viene aperta e chiusa all’occorrenza
E’ consigliato il valore 0.
$option[‘autorefresh’]=X; X rappresenta il valore in minuti di aggiornamento automatico delle pagine di amministrazione.
$option[‘show_server_details’]=X; Visualizzazione informazioni sul server nella pagina principale di amministrazione.
1: visualizza
0: non visualizza
$option[‘show_average_user’]=X; Visualizzazione informazioni sull’utente medio nella pagina principale di amministrazione.
1: visualizza
0: non visualizza
$option[‘short_url’]=X; Utilizza URL abbreviati quando possibile.
1: attivo
0: non attivo
$option[‘ext_whois’]=””; La stringa vuota (“”) comporta l’uso del whois interno dello script. Se si vuole usarne uno esterno immettere l’url (http://www….).
La variabile contenente l’IP dovrà essere scritta come %IP%.
$option[‘online_timeout’]=X; Impostare a 0 per utilizzare la determinazione automatica del tempo di permanenza per il calcolo degli utenti on-line oppure inserire il numero di minuti da considerare come time-out.
Di default è impostato a 5 minuti.
$option[‘page_title’]=X; Memorizzazione titolo delle pagine visualizzate.
1: attivo
0: non attivo
$option[‘refresh_page_title’]=X; Se attivo memorizza l’attuale titolo della pagina, altrimenti cerca l’URL corrispondente nella tabella _pages e se già presente usa il titolo già memorizzato in precedenza.[che utilità ha?!]
1: attivo
0: non attivo
$option[‘log_host’]=X; Memorizzazione dell’hostname nei dettagli visitatori.
1: attivo
0: non attivo
$option[‘clear_cache’]=X; Riconoscimento continuo dei dati in cache.
1: attivo
0: non attivo
$option[‘full_recn’]=X; Riconoscimento continuo dei motori di ricerca e dei referers ad ogni pagina.
1: attivo
0: non attivo
ATTENZIONE: se attivo può rallentare il riconoscimento.
$option[‘logerrors’]=X; Registrazione nel file php-stats.log (deve avere i permessi in scrittura) degli errori generati dalle query effettuate da PHP-Stats o altri eventi.
1: attivo
0: non attivo
$option[‘check_new_version’]=X; Notifica (tramite messaggio nella pagina principale admin.php) automatica della disponibilità di una nuova versione di PHP-Stats.
1: attivo
0: non attivo
$option[‘bcap_auto_update’]=X; Aggiornamento automatico del database per il riconoscimento dei browser, sistemi e motori di ricerca (Browscap).
NB: è necessario che il server consenta le connessioni verso l’esterno (altervista.org ad esempio non lo fa di default ma è un’opzione che va abilitata).
1: attivo
0: non attivo
$option[‘www_trunc’]=X; Impostare a 1 per considerare univoci gli url con suffisso http://www. in http:// evitando un doppio conteggio nel caso di domini che ammettono entrambe le estensioni, 0 altrimenti.
$option[‘ip-zone’]=X; 0: disattiva riconoscimento nazione da IP
1: riconoscimento tramite Database (da installare)
2: riconoscimento tramite File (da installare)
$option[‘down_mode’]=X; 0: redirect
1: forza download file
2: forza download file Altervista
$option[‘check_links’]=X; Controllo validità dei link inseriti nelle pagine Click e Download.
1: attivo
0: non attivo
$option[‘ip_spam_filter’]=X; Filtro anti-spam tramite Database (da installare)
1: attivo
0: non attivo
$option[‘link_logger’]=X; Intercetta automaticamente tutti i link presenti nella pagina e ne registra i click.
1: attivo
0: non attivo
$option[‘keep_view_mode’]=X; Mantiene l’ultima modalità di visualizzazione utilizzata nelle pagine di PHP-Stats (ad esempio la scelta di mostrare l’URL al posto del titolo).
1: attivo
0: non attivo
$default_pages=array(…) E’ un array che contiene le pagine interpretate di default dal vostro server. In questo modo pagine come http/tuosito.it, http/tuosito.it/index.htm o http/tuosito.it/index.php saranno considerate come la stessa pagina (come in realtà avviene).

Monitorare le pagine

Per monitorare le vostre pagine è necessario inserire in esse una porzione di codice (soltanto una volta nella singola pagina), generato in automatico dallo stesso PHP-Stats nella sezione delle opzioni. E’ sufficiente copiarlo ed incollarlo nelle pagine del vostro sito.

Nel caso vogliate usare il metodo JavaScript, la posizione non è critica e qualsiasi zona tra i tag <BODY> e </BODY> andrà bene.

Si può anche inserire tra i tag <HEAD> e </HEAD> impostando nel file di configurazione (config.php) $option[‘callviaimg’]=0.

Se invece intendete usare il metodo PHP fate attenzione a ciò che precede il punto d’inserimento: ad esempio se il vostro script modifica il fuso orario ed in coda avete incluso PHP-Stats, quest’ultimo si torverà l’orario alterato.

JavaScript : Stringa Classica (consigliato)

Utilizzabile su tutti i tipi di pagine.

PRO:

* può essere inserito facilmente su qualsiasi pagina
* possibilità di utilizzare PHP-Stats anche se residente su altro server

CONTRO:

* impossibilità di caching da parte del browser e quindi lieve ritardo nel caricamento
* impossibilità di monitorare le visite da parte dei motori di ricerca

Include PHP

Utilizzabile solo su pagine PHP.

PRO:

* estrema velocità di caricamento
* monitoraggio di tutti i motori di ricerca

CONTRO:

* possibilità di utilizzo solo su pagine PHP
* il server dove è presente PHP-Stats deve essere lo stesso delle pagine da monitorare

Visualizzare il contatore

Per visualizzare nel vostro sito informazioni sugli accessi è possibile inserire del codice JavaScript (eventualmente ripetuto anche più volte).

Questo JS è generato in automatico da PHP-Stats nella pagina delle opzioni. Dopo aver specificato alcuni parametri (numero di cifre e stile del contatore), cliccate sull’apposito pulsante che genererà il codice e aggiornerà l’anteprima.

E’ sufficiente copiarlo ed incollarlo nelle vostre pagine nel punto esatto in cui volete che le informazioni richieste siano visualizzate.

Visitatori di ritorno

Dalla versione 1.3 di PHP-Stats è possibile sapere anche quanti visitatori ritornano sul vostro sito.

Il sistema è basato sui cookie salvati dal browser del visitatore: uno contiene data e ora dell’ultima visita, l’altro il numero di visite effettuate. Il contatore è incrementato se il visitatore ritorna dopo che sono trascorse almeno N ore (dove N è il valore impostato come IP Timeout nella pagina Opzioni).

Attualmente questo dato è visibile nelle pagine:

  • Sommario
  • Dettagli visitatori (n° di visite e data dell’ultima visita)
  • Calendario accessi

 

Monitoraggio Click & Download

Il principio di funzionamento del monitoraggio di Click e Download è molto semplice: anzichè far puntare direttamente il link ad una pagina o ad un file, lo si fa puntare ad una pagina intermedia (download.php o click.php) che incrementerà il contatore e reinderizzerà il browser.

Per prima cosa è necessario creare un riferimento al file o alla pagina che intendiamo monitorare, in modo che PHP-Stats conosca l’URL in questione e ne associ un numero univoco (ovvero quello che chiameremo ID).

Prendiamo come esempio i Download, ma le stesse considerazioni valgono anche per i Click.

Aprite la pagina Downloads Admin, inserendo i dati relativi al file da monitorare (se la voce non dovesse comparire nel menù, assicuratevi di avere attivato questa caratteristica nella pagina delle opzioni).

Il “nome” è un campo puramente pratico, nel senso che ci aiuterà semplicemente a riconoscere il file.

Una finestra vi mostrerà un riepilogo sul file e se questo risulta correttamente accessibile con una sorta di “semaforo”: verde se il file è accessibile, rosso in caso contrario, giallo se questo controllo è inattivo.

Bene, il nostro download è stato specificato, adesso non ci resta che iniziare a monitorarlo.

Ci serve l’ID del download e per conoscerlo andiamo nella sezione Downloads. Cliccando sull’ID comparirà nella finestra sottostante il codice HTML da inserire nelle pagine, simile a questo:

<a href=”http://www.tuosito.it/stats/download.php?id=XX”>Download</a>“.

 

Monitoraggio Links

Ho introdotto una nuova funzionalità per monitorare i click fatti su un collegamento, immagine o download. Cose che esistono già in PHP-Stats, ma assai scomode perché va creato di volta in volta l’elemento da controllare: quindi se aggiungi o cambi un link, di nuovo va riconfigurato. Troppo laborioso!

Questa nuova funzione lo fa automaticamente su tutta la pagina.

Tramite javascript vengono dirottati tutti i link ad un script php che registra il click e subito reindirizza il browser all’indirizzo originale cliccato (questa seconda parte è lo stesso metodo usato sinora da PHP-Stats per monitorare click e download).

 

Installazione database IP2Country

Di base la nazione di provenienza del visitatore è riconosciuta dal dominio: .it Italia, .fr Francia… banale!

E’ possibile un riconoscimento più preciso risalendo alla nazione dall’IP dell’utente. Occorre però installare l’apposito database: non spaventatevi, è facilissimo!

Prima di tutto, ovviamente, scaricate il file da qui: GeoIPCountryCSV.

Potete ora decidere se installarlo su normali files o sul database mySQL del vostro server.

INSTALLARE IP-TO-COUNTRY SU DATABASE mySQL
  1. Estraete il file *.csv scaricato ed effettuate l’upload nella cartella di installazione di PHP-Stats sul vostro sito.
  2. Eseguite lo script “create_geoip_database.php“: creerà la tabella necessaria a PHP-Stats.
  3. Tramite browser andate sulla pagina di modifica del config.php e impostate la variabile $option[‘ip-zone’] sul valore 1.
INSTALLARE IP-TO-COUNTRY SU FILES
  1. Estraete il file *.csv scaricato ed effettuate l’upload nella cartella di installazione di PHP-Stats sul vostro sito.
  2. Eseguire lo script “create_ip-to-country_files.php“: creerà 2 files sul server necessari a PHP-Stats.
  3. Tramite browser andate sulla pagina di modifica del config.php e impostate la variabile $option[‘ip-zone’] sul valore 2.

 

Installazione database Spam-Blacklist

Se tra i visitatori ne ricevete molti “fasulli” (solitamente riconoscibili da hostname insoliti) probabilmente sono programmi che stanno cercando di inserire pubblicità negli spazi riservati ai commenti del vostro sito.

Dalla versione 1.3 di PHP-Stats è possibile installare un database di indirizzi IP relativi a questi indesiderati visitatori: se l’IP è presente in questa lista sarà ignorato e quindi non conteggiato come visita.

L’installazione è molto semplice e avviene su mySQL.

Prima di tutto scaricate il database da qui: Spam-IP.

  1. Effettuate l’upload del file *.csv nella cartella di installazione di PHP-Stats sul vostro sito.
  2. Eseguite lo script “create_spam_database.php”: creerà la tabella necessaria a PHP-Stats.
  3. Tramite browser andate sulla pagina di modifica del config.php e impostate la variabile $option[‘ip_spam_filter’] sul valore 1.

 

Visualizzare le pagine più visitate

Ho realizzato un nuovo script che consente di visualizzare le pagine più visitate.

Va inserito come codice HTML sulla pagina e ritorna del testo puro che potete formattare come preferite.
I dati vengono letti dal database mySQL di PHP-Stats.

L’esigenza è nata dal voler inserire una classifica delle pagine più visualizate nel mio blog.
Usavo già un plugin per WordPress che fa proprio questo, ma ha il difetto di non tenere conto dei motori di ricerca e pertanto conta di tutto.
Quindi, molto meglio affidarsi al preciso PHP-Stats!
Va utilizzato in questo modo:

<script type="text/javascript" src="/stats/top_pages.js.php?mode=1&pos=0&num=20"></script>
Questo esempio mostra i primi 20 titoli della classifica.

<ul>
<li><script type="text/javascript" src="/stats/top_pages.js.php?mode=1&pos=0&num=1"></script></li>
<li><script type="text/javascript" src="/stats/top_pages.js.php?mode=1&pos=0&num=1"></script></li>
<li><script type="text/javascript" src="/stats/top_pages.js.php?mode=1&pos=0&num=1"></script></li>
</ul>

Questo esempio mostra i primi 3 titoli della classifica come elenco puntato.

mode = 0 : Mostra titolo della pagina - default
mode = 1 : Mostra titolo della pagina con n° visite tra ()
mode = 2 : Mostra URL
mode = 3 : Mostra URL con n° visite tra ()
link = 1 : Il testo è anche link all'URL - default
pos = N  : Mostra la pagina in posizione N (0=prima posizione) - default=0
num = N  : Mostra le prime N pagine - default=10

 

Visualizzare un Grafico delle ultime visite

Inserendo una semplice stringa nella vostra pagina HTML potete visualizzare un grafico in cui sono riportate le visite ricevute negli ultimi giorni.
Il giorno più recente (oggi) è sull’estrema destra della curva.

Il grafico può essere personalizzato così:

 days = N : Mostra gli ultimi N giorni (se omesso, default=7)
 mode = 0 : Mostra tutto (se omesso, default=0)
 mode = 1 : Mostra n° di pagine visitate
 mode = 2 : Mostra n° di visitatori
 mode = 3 : Mostra n° visitatori di ritorno
 width = N : Larghezza del grafico (se omesso, default=240)
 height = N : Altezza del grafico (se omesso, default=120)
 title = tt : Titolo del grafico (se omesso, non visualizza alcun titolo)

Ecco un esempio della stringa da inserire:
<script type="text/javascript" src="/stats/chart.js.php?days=30&mode=1"></script>

 

Visualizzare un Grafico delle visite ad una pagina

Questa stringa inserita nella vostra pagina HTML mostrerà un grafico delle visite ricevute dalla pagina stessa (o altra, se specificata) negli ultimi giorni.

Il grafico può essere personalizzato così:

 page = P : URL della pagina (se omesso, url corrente)
 width = N : Larghezza del grafico (se omesso, default=320)
 height = N : Altezza del grafico (se omesso, default=240)
 title = tt : Titolo del grafico (se omesso, non visualizza alcun titolo)

Ecco un esempio della stringa da inserire:
<script type="text/javascript" src="/stats/chart_page.js.php?width=240&height=128"></script>