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/html/
(come configurato in /etc/apache2/sites-enabled/000-default.conf
).
mod_ssl
) required for secure HTTP (HTTPS) out of the box. It just needs to be enabled with a2enmod ssl
, then the required directives have to be added to the configuration files. A configuration example is provided in /etc/apache2/sites-available/default-ssl.conf
.
SSLCertificateFile /etc/letsencrypt/live/DOMAIN/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/DOMAIN/chain.pem SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt
mod_gnutls
, which is shipped with the libapache2-mod-gnutls package and enabled with the a2enmod gnutls
command. Unfortunately the version packaged for Debian had serious issues and even security implications and is therefor not part of the Debian Bullseye release.
/etc/apache2/sites-enabled/000-default.conf
: 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.13. Il file /etc/apache2/sites-available/www.falcot.org.conf
<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-available/customlog.conf
che definisce un nuovo formato per tutti i file di log (con la direttiva LogFormat
) ed abilitandolo con a2enconf customlog
. La riga CustomLog
dev'essere quindi rimossa (o commentata) dal file /etc/apache2/sites-available/000-default.conf
.
Esempio 11.14. The /etc/apache2/conf-available/customlog.conf
file
# 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.15. Blocco Directory
<Directory /srv/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:
ExecCGI
indicates that CGI scripts can be executed.
FollowSymlinks
tells the server that symbolic links can be followed, and that the response should contain the contents of the target of such links.
SymlinksIfOwnerMatch
also tells the server to follow symbolic links, but only when the link and its target have the same owner.
Includes
enables Server Side Includes (SSI for short). These are directives embedded in HTML pages and executed on the fly for each request.
IncludesNOEXEC
allows Server Side Includes (SSI) but disables the exec
command and limits the include
directive to text/markup files.
Indexes
tells the server to list the contents of a directory if the HTTP request sent by the client points at a directory without an index file (i.e., when no files mentioned by the DirectoryIndex
directive exists in this directory).
MultiViews
enables content negotiation; this can be used by the server to return a web page matching the preferred language as configured in the browser.
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
).
mod_auth*
modules.
/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
Require
directive controls access restrictions for a directory (and its subdirectories, recursively).
Require
sono combinate all'interno di un blocco RequireAll
.
/etc/awstats/awstats.conf
.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 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.18. File di configurazione di AWStats per un host virtuale
Include "/etc/awstats/awstats.conf" SiteDomain="www.falcot.org" HostAliases="falcot.org"
/usr/share/awstats/icon/
directory. In order for these icons to be available on the web site, the Apache configuration needs to be adapted to include the following directive (check out /usr/share/doc/awstats/examples/apache.conf
for a more detailed example):
Alias /awstats-icon/ /usr/share/awstats/icon/