Inserisci Infobox

Analisi e gestione dei log httpd

Configurazione, analisi e gestione dei log di un server Web. Software di analisi dei log.

I log di Apache
Autore: al - Ultimo Aggiornamento: 2005-06-09 17:10:26 - Data di creazione: 2005-03-01 14:25:17
Tipo Infobox: SLIDE - Skill: 2- JUNIOR

Apache prevede diverse direttive per gestire i log:
LogLevel warn - Imposta il livello di debug per le attività di Apache (non si applica ai log di accesso web)
TransferLog /var/log/httpd/access_log - Imposta il path del file di log degli accessi
ErrorLog /var/log/httpd/error_log - Path del log di ogni richiesta che ha generato un errore
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined - Definisce un formato di log custom chiamato, in questo caso "combined"
CustomLog /var/log/httpd/access_log combined - Utilizza il log "combined" com il formato precedentemente definito.

Oltra al nome del file di log, nelle suddette direttive è possibile specificare syslog per usare Syslogd oppure una sintassi come CustomLog "|/usr/bin/gzip -c >> /var/log/access_log.gz" common per passare in input al programma indicato i log (in questo caso il log viene compresso on the fly.

La rotazione dei log è spesso indispensabile in siti ad alto traffico, esistono diversi programmi per gestirla. Su alcune distribuzioni è presente Logrotate che provvede automaticamente (vanno eventualmente adattate le configurazioni custom alle proprie esigenze). Altri tool sono Cronolog o rotatelogs (distribuito con Apache).
In tutti i casi è importante considerare che dopo aver rinominato un log è necessario riavviare (reload o kill -HUP) il servizio Apache.

Strumenti di Analisi Log
Esistono diversi strumenti di analisi e reportistica degli accessi web, basati sui log di Apache.
I più significativi, fra quelli OpenSource:
Webalizer - http://www.webalizer.org/
AWStats - http://www.awstats.org/
Analog - http://www.analog.cx/

I log di Apache
Autore: al - Ultimo Aggiornamento: 2002-11-07 10:59:28 - Data di creazione: 2002-11-07 10:59:28
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

L'attività di logging è fondamentale per ogni servizio in esecuzione su una macchina.
Su Apache oltre a fornire informazioni su eventi che riguardano il funzionamento del servizio, nei log si tiene traccia di tutte le richieste http eseguite al server web.

Il modulo mod_log_config gestisce tutte le attività di logging da Apache 1.3.5 in poi.
Generalmente su un server web si prvedono 2 diversi tipi di log:

I LOG DI ERRORE: Error_log
Contiene traccia di tutti gli errori incontrati da Apache. Di default viene scritto in /server_root/logs/error.log ma la sua posizione può essere configurata:
ErrorLog /var/log/httpd/error_log.
Ci può essere solo un ErrorLog nella configurazione generale, ma ne può essere definito uno per ogni VirtualHost. Non si può impedire ad Apache di loggare gli errori ma si possono evitare i tempi di scrittura su disco: ErrorLog /dev/null.
E' possibile definire il livello di logging (in ordine di importanza: emerg - alert - crit - error - warn - notice - info - debug) con la direttiva LogLevel:
LogLevel warn
E' inoltre possibile utilizzare syslog per il logging, di default Apache usa la facility local7:
ErrorLog syslog
Ma si può definire una propria facility per gestire più facilmente /etc/syslog.conf. Con l'esempio che segue si passano al syslog i messaggi di errore utilizzando la facility apache:
ErrorLog syslog:apache

I LOG DI ACCESSO: Transfer_log
Qui vengono registrate tutte le richieste HTTP fatte al server dai client in rete. Sono fondamentali per poter analizzare il traffico su un sito Web e vengono allo scopo processati da appositi software di log analysys.
Il formato dei log di accesso può essere customizzato dall'utente ed includere i dati che interessano.
Al contrario dei log di errore, i transfer log vanno esplicitamente configurati e possono essere evitati.
L'impostazione di base del log viene fatto con la direttiva TransferLog ed è nel Common Log Format (host ident authuser date request status bytes):
TransferLog /var/log/httpd/access_log.
Con la direttiva LogFormat si può scegliere cosa scrivere nel file di log e si definisce il nome del tipo di log, che può poi venir utilizzata con la direttiva CustomLog (nel caso che segue il nome del formato è common).
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

Customizzare il formato dei log
Autore: al - Ultimo Aggiornamento: 2002-11-07 14:41:33 - Data di creazione: 2002-11-07 14:41:33
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

Apache permette di scrivere nei propri log di accesso una serie di informazioni relative ad ogni richiesta fatta via HTTP.

Con la direttiva LogFormat si assegna un nickname al log e si decide il formato dei dati che deve contenere.
La sintassi di base si riferisce al log di default, utilizzato dalla direttiva TransferLog:
LogFormat formato
E' comunque possibile definire un nickname associato al formato impostato, che può essere utilizzato con la direttiva CustomLog:
LogFormat formato nickname

I dati che possono essere scritti nel log sono vari e vengono identificati con lettere o stringhe precedute dal simbolo %:
%b - Le dimensioni in byte del file trasferito (coincide con l'header Content-Lenght)
%f - Il nome del file e il path completo del documento richiesto
%h - L'hostname o, se non viene risolto, l'indirizzo IP del client
%a - L'indirizzo IP del client. E' uguale a %h se l'hostname non viene risolto
%A - L'indirizzo IP del server.
%l - Il nome dell'utente remoto, se fornito da un identd lookup (Poco utile e inaffidabile)
%p - La porta TCP del server, a cui è arrivata la richiesta del client (di solito 80)
%P - Il PID del child di Apache che ha gestito la richiesta
%r - La prima righa della richiesta HTTP,che contiene il metodo usato (GET, POST...)
%s - Lo status code HTTP della risposta
%t - Date e ora della richiesta. Customizzabile con %{formato}t
%T - Il numero di secondi impiegati da Apache per processare la richiesta
%u - Il nome dell'utente eventualmente autenticato sul server
%U - L'URL richiesta dal client. Contenuta anche in %r
%v - Il canonical server name, come definito nella direttiva ServerName
%V - Il server name secondo quanto definito in UseCanonicalName
%{Variabile}e - Una variabile d'ambiente, così come definita dal server
%{Header}i - Un header http nella richiesta del client (esempi comuni: %{User-Agent}i %{Referer}i )
%{Header}o - Un header http nella risposta del server (es: %{Last-Modified}o )
%{Nota}n - Una stringa che può essere scambiata fra il core di Apache e un modulo (esempio tipico, per il mod_usertrack: %{Cookie}n )

Un esempio tipico di log custom è incluso nella configurazione standard di Apache:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
che genera un log simile:
217.148.96.21 - - [07/Nov/2002:14:27:05 +0100] "GET /gfx/morecoresisproject.jpg HTTP/1.1" 304 - "http://www.openskills.info/" "Opera/6.02 (Linux 2.4.17-GANDALF i686; U)  [en]"

Una variazione sul tema, che cerca di raccogliere il maggior numero di informazioni sui visitatori (ma di fatto difficilmente fornisce più informazioni di un combined log) può essere:
LogFormat "%h %t \"%r\" %l %u \"%{Referer}i\" \"%{User-Agent}i\" \"%{From}i\"" user

Come non loggare le immagini su Apache
Autore: al - Ultimo Aggiornamento: 2002-11-08 12:22:56 - Data di creazione: 2002-11-08 12:22:56
Tipo Infobox: TIPS - Skill: 3- INTERMEDIATE

Una volta attivato, il trasfer loggin di Apache scrive una riga di log per ogni oggetto richiesto dai client. In siti con molto traffico o molte immagini può essere utile evitare di scrivere innumerevoli righe di log per tutte le immagini richieste e limitare il logging alle pagine html o simili.

Per farlo si possono usare alcune caratteristiche evolute della direttiva  che può eseguire controlli e decisioni sulla base delle variabili d'ambiente.
Queste variabili possono anche essere definite con la direttiva SetEnvIf disponibile con il modulo mod_setenvif.
Di fatto per non loggare le immagini nel proprio log si può usare una configurazione simile:
# Identifica negli URI i file .gif, .jpg e .png e li assegna alla variabile images
SetEnvIf Request_URI \.gif$ image=gif
SetEnvIf Request_URI \.jpg$ image=jpg
SetEnvIf Request_URI \.png$ image=png
# Specifica di non loggare nel CustomLog le entry che matchano le imamgini
CustomLog logs/access_log common env=!image

Gestire la rotazione dei log su Apache
Autore: al - Ultimo Aggiornamento: 2003-02-05 11:03:40 - Data di creazione: 2003-02-05 11:03:40
Tipo Infobox: TIPS - Skill: 2- JUNIOR

Il processo di ruotare i log su Apache, se fatto manualmente, richiede una certa attenzione, ma può essere automatizzato con script e tool specifici.

La procedura manuale, richiede un riavvio del server web.
Quando infatti si rinomina un file di log, Apache continua a loggare sullo stesso, almeno fino ad un riavvio del servizio.
I comandi sono di questo tenore:
mv access_log access_log.old
mv error_log error_log.old
apachectl graceful
sleep 600
gzip access_log.old error_log.old

Si può anche fare un restart più rapido e brutale (apachectl restart) che non aspetta la chiusura delle connessioni esistenti.

Questa operazione può essere automatizzata direttamente in configurazione con filtri come Cronolog o il comando rotatelogs, distribuito con Apache (guardare la parte sui Piped Log).
Alternativamente si possono usare programmi come LogRotate che gestiscono la rotazione di ogni tipo di log.

Utilizzo dei piped logs
Autore: al - Ultimo Aggiornamento: 2002-11-07 19:00:01 - Data di creazione: 2002-11-07 19:00:01
Tipo Infobox: TIPS - Skill: 5- SENIOR

Una interessante e flessibile funzionalità del sistema di logging di Apache è la possibilità di inviare i dati di un log (sia un error log che un transfer log) ad un programma, tramite una normale pipe, invece che scriverli direttamente su un file.

Il programma che riceve il log in standard input potrà processarli e scriverli in standard output secondo criteri assolutamente gestibili.
Va notato che il programma a cui si passano i log viene eseguito con i permessi di Apache, quindi di root, per cui bisogna prestare attenzione ai possibili rischi in termini di sicurezza.
Per questa funzione basta sostituire al nome del file la pipe e il nome del programma (o la command line) a cui inviare i log.
Alcuni esempi possono essere illuminanti sulle enormi possibilità che si aprono con questa funzione:
Compressione dei log on-the-fly:
CustomLog "|/usr/bin/gzip -c >> /var/log/access_log.gz" common
Reverse lookup sui client IP in quasi real-time, senza ritardare le risposte del server come accade con la direttiva HostNameLookup:
CustomLog "|/usr/local/apache/bin/logresolve >> /var/log/access_log" common
Esegue la rotazione automtica dei log ogni 24 ore (86400 secondi):
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" combined
Usando il tool cronolog si creano log mensili con nomi che contengono mese e anno:
CustomLog "|cronolog /var/log/apache/DOMAIN/%Y/%Y-%m-access.log" combined

Si invia il log ad un proprio programma filtro.sh:
CustomLog "|/usr/local/bin/filtro.sh" combined
In un caso simile filtro.sh deve poter ricevere in STDIN dei dati, gestirli e scriverli da qualche parte. Un esempio, che logga in un file a parte tutte le richieste generate da worm come Nimda è questo:
#!/bin/sh
NIMDA_LOG=/var/www/httpd/nimda_log
NORMAL_LOG=/var/www/httpd/access_log
STRING=cmd.exe
while /bin/true;
do
  read loginput
  if [ `echo "$loginput" | grep -c $STRING ` == 1 ]
  then
    echo "$loginput" >> $NIMDA_LOG &
  else
    echo "$loginput" >> $NORMAL_LOG &
  fi
done

Log rotation e archiviazione dei log
Autore: al - Ultimo Aggiornamento: 2003-02-01 10:52:22 - Data di creazione: 2003-02-01 10:52:22
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

La gestione e l'analisi dei log è un'attività sistemistica che richiede le sue attenzioni.
Su macchine ad alto traffico, o sotto attacco DOS o con particolari problemi ricorrenti, le dimensioni dei log possono crescere a dismisura in pochissimo tempo, fino a saturare il file system.

Per questo motivo è sempre consigliabile montare la directory /var, dove generalmente risiedono i log, in una partizione indipendente, che, anche se riempita, non blocca il funzionamento del sistema.
E' inoltre importante poterli gestire, ruotandoli ad intervalli fissi e compattando i log vecchi, preparandoli per un'archiviazione.

Su molte distribuzioni Linux è incluso Logrotate, un'applicazione che semplifica l'amministrazione dei log, permette di comprimere, rimuovere ed inviare il log via mail oltre a eseguire una rotazione di file con vari criteri.
Il file di configurazione è /etc/logrotate.conf
In sistemi che usano RPM , solitamente, le regole di gestione dei singoli log sono inserite nella directory /etc/logrotate.d/.
Generalmente gli script che eseguono logrotate sono inseriti nel crontab e di default sono configurati per gestire i log standard di sistema.

Altra applicazione che viene spesso usata per gestire, in particolare, i log di Apache è Cronolog, che rende particolarmente semplice la segmentazione di log in file diversi generati secondo unità di tempo configurabili (es: un file diverso ogni giorno). E' particolarmente utile per gestire siti ad alto traffico, in cui le dimensioni dei log tendono a crescere in modo spropositato.
Viene tipicamente usato come un filtro che riceve un log dallo standard input e lo scrive in stdout su più diversi file, secondo le specifiche indicate in un template. La sintassi di base è /path/cronolog [opzioni] template. Per esempio:
/usr/sbin/cronolog /web/logs/%Y/%m/%d/access.log divide il log che riceve in stdout in tanto diversi log in diverse directory secondo il criterio /web/logs/anno/mese/giorno/access.log, con risultati tipo: /web/logs/2003/01/17/access.log.
Viene tipicamente usato in httpd.conf sfruttando la funzionalità di Apache di inviare i log ad un comando esterno:
TransferLog "|/usr/sbin/cronolog /web/logs/%Y/%m-%d-access.log"
ErrorLog    "|/usr/sbin/cronolog /web/logs/%Y/%m-%d-errors.log"

Crea un file di log diverso ogni giorno e li mette in directory divise per anno.

Il vantaggio di simili programmi è quello di sollevare l'amministratore dalla noiosa e insidiosa pratica di gestione e archiviazione dei log, che se non automatizzata può portare a spiacevoli conseguenze quali file system riempiti al 100%, file di log enormi, perdita di dati e simili contrattempi.  

Analisi del traffico Web: strumenti e funzioni
Autore: al - Ultimo Aggiornamento: 2002-10-18 17:07:57 - Data di creazione: 2002-10-18 17:07:57
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Chiunque pubblica su Internet un suo sito web è interessato a sapere quanti lo visitano, cosa guardano, da dove vengono e magari perchè lo fanno.
Ogni server web logga, tiene traccia, di ogni file servito agli irrrequieti browser suoi client.
Il tipo di informazioni loggate da un server web sono, per ogni file (immagine o HTML) servito: data e ora della richiesta, IP del client remoto, client (browser) utilizzato, referrer (URL della pagina che ha il link al file richiesto), nome del file.
L'analisi dei log prodotti può essere automatizzata e analizzata per ottenere statistiche interessanti e comprensibili.
Esistono in circolazione una moltitudine di log analyzers, programmi, gratuiti o a pagamento, che analizzano i log di server Web vari e producono un output, tipicamente in HTML, che con tabelle, schemi, grafici e statistiche riassumono ed elencano innumerevoli dati sul traffico web generato da un sito.

Su Linux / Unix i più diffusi e validi programmi opensource o comunque freeware per l'analisi del traffico web sono:
WEBALIZER: http://www.webalizer.org - Veloce, diffuso, con interesanti grafici e statistiche
ANALOG: http://www.analog.cx/ - Statistiche dettagliate
AWSTATS: http://awstats.sourceforge.net/ - Ottima presentazione e grafici interessanti

Esistono moltissime alternative commerciali e anche diversi approccia all'analisi del traffico web.
I tool qui presentati analizzano i log dei server web, altri tool utilizzando delle proprie "sonde" all'interno di pagine Web, che registrano i dati sui visitatori su un server centrale, alcuni inseriscono pezzi di codice, per esempio in PHP, che logga su un database gli accessi.
Alcuni strumenti, infine, si adattano bene a grosse quantità di log anche su sistemi distribuiti, altri sono più limitati, alcuni processano senza problemi pagine dinamiche e i relativi accessi, altri lavorano bene solo su pagine statiche.

Introduzione a Webalizer
Autore: homer - Ultimo Aggiornamento: 2004-03-14 12:08:02 - Data di creazione: 2004-03-14 12:08:02
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Webalizer è uno tra i più diffusi software per l'analisi dei log di un web server.

E' un software Open Source, il quale permette di generare dei report statistici in diverse lingue (tra cui anche l'italiano) in formato HTML, quindi visualizzabili facilmente con qualunque browser, partendo da un log file di un Web Server.

I dati possono essere analizzati su base annuale, mensile, giornaliera ed oraria. E' possibile visualizzare diversi tipi di informazioni relative ai visistatori di un sito web quali per esempio, url, referrer, browser, search string di un motore di ricerca, paese di provenienza ecc. La presentazione dei report viene effettuata tramite la creazione di diverse pagine HTML corredate di grafici in formato png generati grazie all'ausilio delle librerie grafiche GD.

Per quanto riguarda i formati di log supportarti, Webalizer è in grado di elaborare log in formato CLF (Common Log Format) e Combined log format. Tra le caratteristiche interessanti, la possibilità, oltre ad classico utilizzo per l'analisi dei dati forniti da un Web Server, di generare report sia per FTP Server che utilizzano il formato xferlog, sia per Squid Proxy Server. Inoltre, qualora i log da analizzare fossero in formato .gz, quindi compressi tramite gzip, Webalizer è in in grado di decomprimerli momentaneamete al fine di leggerne i dati per elaborarli.

Infine tra le features di Webalizer sono presenti l'Incremental Processing e il Reverse DNS Lookups.
L'Incremental Processing, disponibile dalla versione 1.2x, permette di elaborare grossi file di log, dividendoli in file più più piccoli elaborati separatamente, permettendo quindi all'amministratore di sistema una maggiore flessibilità per quanto riguarda il rotate dei log senza perdere nessun dettaglio in merito alle statistiche generate. Il Reverse DNS Lookups, disabilitato di default, permette invece a Webalizer di recuperare il nome host associato ad un indirizzo IP presente in un file di log.

Installazione di Webalizer
Autore: homer - Ultimo Aggiornamento: 2003-10-26 13:11:47 - Data di creazione: 2003-10-26 13:11:47
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Installazione di Webalizer tramite RPM e compilazione dei sorgenti.

INSTALLAZIONE TRAMITE RPM  
L'Installazione via RPM avviene in soli due passi: Download ed installazione. E' possibile fare il download del software da un repository quale per esempio http://www.rpmfind.net:  
[root@Enigma Software]# wget --passive-ftp ftp://fr.rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS/webalizer-2.01_10-11.i386.rpm   
--16:09:42--  ftp://fr.rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS/webalizer-2.01_10-11.i386.rpm  
           => `webalizer-2.01_10-11.i386.rpm'  
Resolving fr.rpmfind.net... done.Connecting to fr.rpmfind.net[194.199.20.114]:21... connected.  
Logging in as anonymous ... Logged in!  
==> SYST ... done.    ==> PWD ... done.  
==> TYPE I ... done.  ==> CWD /linux/redhat/9/en/os/i386/RedHat/RPMS ... done.  
==> PASV ... done.    ==> RETR webalizer-2.01_10-11.i386.rpm ...done.  
Length: 101,903 (unauthoritative)  
                                                                                            
100%[=================================================================================>] 101,903        4.67K/s    ETA 00:00  

16:10:06 (4.67 KB/s) - `webalizer-2.01_10-11.i386.rpm' saved [101903]
                      

Successivamente si passa all'installazione:  
[root@Enigma Software]# rpm -ivh webalizer-2.01_10-11.i386.rpm  
Preparing...                ########################################### [100%]  
   1:webalizer              ########################################### [100%]


INSTALLAZIONE TRAMITE COMPILAZIONE DEI SORGENTI  
Dal sito ufficiale è possibile procedere con il download dei sorgenti:  

root@Joker:/software# wget --passive-ftp ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz  
--18:44:58--  ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz  
           => `webalizer-2.01-10-src.tgz'  
Resolving ftp.mrunix.net... done.  
Connecting to ftp.mrunix.net[209.114.200.24]:21... connected.  
Logging in as anonymous ... Logged in!  
==> SYST ... done.    ==> PWD ... done.  
==> TYPE I ... done.  ==> CWD /pub/webalizer ... done.  
==> PASV ... done.    ==> RETR webalizer-2.01-10-src.tgz ... done.  
Length: 418,680 (unauthoritative)  

100%[==================================================================================>] 418,680        4.45K/s    ETA 00:00  

18:46:50 (4.45 KB/s) - `webalizer-2.01-10-src.tgz' saved [418680]


SCOMPATTAZIONE  
Si prosegue poi con la scompattazione dei sorgenti:  
root@Joker:/software# tar -zxvf webalizer-2.01-10-src.tgz  
webalizer-2.01-10/  
webalizer-2.01-10/aclocal.m4  
webalizer-2.01-10/CHANGES  
webalizer-2.01-10/webalizer_lang.h  
webalizer-2.01-10/configure  
webalizer-2.01-10/configure.in  
[...]  
webalizer-2.01-10/sample.conf  
webalizer-2.01-10/webalizer.1  
webalizer-2.01-10/webalizer.c  
webalizer-2.01-10/webalizer.h  
webalizer-2.01-10/webalizer.LSM  
webalizer-2.01-10/webalizer.png  
root@Joker:/software#


CONFIGURAZIONE
La scompattazione crea la directory Webalizer seguita dalla versione del programma, all'interno della quale è necessario spostarsi per avviare le operazioni di configurazione, compilazione ed installazione:  
root@Joker:/software# cd webalizer-2.01-10  
root@Joker:/software/webalizer-2.01-10# ./configure --help  
Usage: configure [options] [host]  
Options: [defaults in brackets after descriptions]  
Configuration:  
--cache-file=FILE       cache test results in FILE  
--help                  print this message  
--no-create             do not create output files  
[...]  
--enable-dns              Enable DNS lookup code  
--with-language=language  Use 'language' (default is english)
  
Tra le varie opzioni di configurazione visualizzabili con il comando ./configure --help, interessanti sono --enable-dns che permette di abilitare la possibilità di eseguire query inverse sul DNS e --with-language che permette di generare report scegliendo tra le numerose lingue supportate

Una volta scelte le opzioni si procede con la creazione del makefile:  
root@Joker:/software/webalizer-2.01-10# ./configure --with-language=italian  
In questo caso l'installazione viene effettuata specificando di volere i report in italiano  
loading cache ./config.cache  
checking for gcc... (cached) gcc  
checking whether the C compiler (gcc  ) works... yes  
checking whether the C compiler (gcc  ) is a cross-compiler... no  
[...]  
creating Makefile  
linking ./lang/webalizer_lang.italian to webalizer_lang.h  
root@Joker:/software/webalizer-2.01-10#

Durante la creazione del makefile è necessario che siano individuate le librerie grafiche gd. Qualora siano presenti nel sistema, ma non trovate durante la configurazione, è possibile specificarne il percorso tramite l'apposito flag --with-gdlib=<path-to-gd-library>.

COMPILAZIONE  
Effettuata la configurazione, è possibile compilare il codice:  
root@Joker:/software/webalizer-2.01-10# make  
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c webalizer.c  
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c hashtab.c  
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c linklist.c  
...  
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -c output.c  
gcc -Wall -O2 -DETCDIR=\"/etc\"  -DHAVE_GETOPT_H=1 -DHAVE_MATH_H=1   -I/usr/local/include -c graphs.c  
gcc  -o webalizer webalizer.o hashtab.o linklist.o preserve.o parser.o output.o dns_resolv.o graphs.o -lgd -lpng -lz -lm  
rm -f webazolver  
ln -s webalizer webazolver  
root@Joker:/software/webalizer-2.01-10#


INSTALLAZIONE  
Terminata correttamente la compilazione, è possibile installare il software:  
root@Joker:/software/webalizer-2.01-10# make install  
/usr/bin/ginstall -c webalizer /usr/local/bin/webalizer  
/usr/bin/ginstall -c -m 644 webalizer.1 /usr/local/man/man1/webalizer.1  
/usr/bin/ginstall -c -m 644 sample.conf /etc/webalizer.conf.sample  
rm -f /usr/local/bin/webazolver  
ln -s /usr/local/bin/webalizer /usr/local/bin/webazolver  
root@Joker:/software/webalizer-2.01-10#

Privacy Policy