a2enmod modulo
. Per disabilitare un modulo il comando è a2dismod modulo
. Questi programmi non fanno altro che creare (o rimuovere) i collegamenti simbolici in /etc/apache2/mods-enabled/
che puntano ai file (conservati in /etc/apache2/mods-available/
).
/etc/apache2/ports.conf
) e serve le pagine dalla directory /var/www/
(come configurato in /etc/apache2/sites-enabled/000-default
).
NameVirtualHost *:80
nel file /etc/apache2/ports.conf
). Inoltre è definito un host virtuale predefinito nel file /etc/apache2/sites-enabled/000-default
: questo host virtuale viene utilizzato qualora non venga trovato alcun host che corrisponde alla richiesta inviata dal client.
/etc/apache2/sites-available/
. Quindi impostare un sito web per il dominio falcot.org
richiede semplicemente la creazione del file seguente e l'abilitazione dell'host virtuale con a2ensite www.falcot.org
.
Esempio 11.16. Il file /etc/apache2/sites-available/www.falcot.org
<VirtualHost *:80> ServerName www.falcot.org ServerAlias falcot.org DocumentRoot /srv/www/www.falcot.org </VirtualHost>
CustomLog
nelle definizioni degli host virtuali). Questo è un buon motivo per personalizzare il formato di questo file di log perché includa il nome dell'host virtuale. Questo può essere fatto creando un file /etc/apache2/conf.d/customlog
che definisce un nuovo formato per tutti i file di log (con la direttiva LogFormat
). La riga CustomLog
dev'essere quindi rimossa (o commentata) dal file /etc/apache2/sites-available/default
.
Esempio 11.17. Il file /etc/apache2/conf.d/customlog
# Nuovo formato di log che include il nome dell'host (virtuale) LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost # Quindi utilizziamo questo formato "vhost" in via predefinita CustomLog /var/log/apache2/access.log vhost
Directory
che consentono di specificare diversi comportamenti per il server in base alla posizione del file che dev'essere servito. Un blocco generalmente include le direttive Options
e AllowOverride
.
Esempio 11.18. Blocco Directory
<Directory /var/www> Options Includes FollowSymlinks AllowOverride All DirectoryIndex index.php index.html index.htm </Directory>
DirectoryIndex
contiene una lista di file da provare quando la richiesta del client corrisponde ad una directory. Il primo file nella lista che esiste viene inviato come risposta.
Options
è seguita da una lista di opzioni da abilitare. Il valore None
disabilita tutte le opzioni così come All
le abilita tutte ad eccezione di MultiViews
. Le opzioni disponibili includono:
AllowOverride
elenca tutte le opzioni che possono essere abilitate o disabilitate attraverso un file .htaccess
. Un utilizzo comune di questa opzione riguarda la limitazione di ExecCGI
per permettere all'amministratore di scegliere quali utenti sono autorizzati ad eseguire programmi con l'identità del server web (l'utente www-data
).
Esempio 11.19. Richiedere l'autenticazione con un file .htaccess
Require valid-user AuthName "Directory privata" AuthType Basic AuthUserFile /etc/apache2/authfiles/htpasswd-private
/etc/apache2/authfiles/htpasswd-private
contiene una lista di utenti e password che sono generalmente manipolati con il comando htpasswd
. Per esempio il seguente comando è utilizzato per aggiungere un utente o cambiare la sua password:
#
htpasswd /etc/apache2/authfiles/htpasswd-private
utente
New password: Re-type new password: Adding password for user
user
Allow from
e Deny from
controllano le restrizioni d'accesso per una directory (e, ricorsivamente, le sue sottodirectory).
Order
comunica al server l'ordine con cui le direttive Allow from
e Deny from
devono essere applicate: l'ultima che corrisponde ha la precedenza. In parole povere, Order deny,allow
consente l'accesso se nessuna direttiva Deny from
è soddisfatta oppure se lo è una direttiva Allow from
. Al contrario Order allow,deny
rifiuta l'accesso se nessuna direttiva Allow from
è soddisfatta (oppure se lo è una direttiva Deny from
).
Allow from
e Deny from
possono essere seguite da un indirizzo IP, da una rete (come 192.168.0.0/255.255.255.0
, 192.168.0.0/24
o anche 192.168.0
), un nome host oppure un nome di dominio, o ancora dalla parola chiave all
che indica tutti.
Esempio 11.20. Rifiutare in via predefinita ma autorizzare la rete locale
Order deny,allow Allow from 192.168.0.0/16 Deny from all
/etc/awstats/awstats.conf
. Il modello /usr/share/doc/awstats/examples/awstats.model.conf.gz
è un punto di partenza raccomandato e gli amministratori della Falcot lo mantengono così com'è modificando solo i parametri seguenti:
LogFile="/var/log/apache2/access.log" LogFormat = "%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot" SiteDomain="www.falcot.com" HostAliases="falcot.com REGEX[^.*\.falcot\.com$]" DNSLookup=1 DirData="/var/lib/awstats" DirIcons="/awstats-icon" DirLang="/usr/share/awstats/lang" LoadPlugin="tooltips"
LogFile
e LogFormat
descrivono la posizione ed il formato del file di log e le informazioni che contiene: SiteDomain
e HostAliases
elencano i vari nomi con cui il sito web principale viene indicato.
DNSLookup
non dovrebbe essere impostato a 1
ma per i siti minori, come quello della Falcot descritto in precedenza, questa impostazione permette di avere dei resoconti più leggibili che includono il nome completo delle macchine anziché il semplice indirizzo IP.
/etc/awstats/awstats.www.falcot.org.conf
.
Esempio 11.21. File di configurazione di AWStats per un host virtuale
Include "/etc/awstats/awstats.conf" SiteDomain="www.falcot.org" HostAliases="falcot.org"
/etc/awstats/awstats.conf
non contiene alcuna direttiva Include
poiché AWStats non può gestire inclusioni multi-livello: sfortunatamente il file predefinito fornito da Debian contiene questa direttiva.
/etc/cron.d/awstats
dev'essere modificato per contenere un richiamo come segue: /usr/lib/cgi-bin/awstats.pl -config=www.falcot.org -update
Esempio 11.22. Il file /etc/cron.d/awstats
0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache2/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=awstats -update >/dev/null && /usr/lib/cgi-bin/awstats.pl -config=www.falcot.org -update >/dev/null
/usr/share/awstats/icon/
. Perché queste icone siano disponibili sul sito web la configurazione di Apache dev'essere adattata per includere la seguente direttiva:
Alias /awstats-icon/ /usr/share/awstats/icon/