a2enmod module
permet d'activer un nouveau module tandis que a2dismod module
le désactive. Ces deux programmes ne font rien d'autre que créer ou supprimer des liens symboliques dans /etc/apache2/mods-enabled/
pointant vers des fichiers de /etc/apache2/mods-available/
.
/etc/apache2/ports.conf
) et renvoie les pages web depuis le répertoire /var/www/html/
(configuré dans /etc/apache2/sites-enabled/000-default.conf
).
mod_ssl
) nécessaire au HTTP sécurisé (HTTPS). Il faut juste l'activer avec a2enmod ssl
puis placer les directives nécessaires dans la configuration. Un exemple est fourni dans /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.
/etc/apache2/sites-enabled/000-default.conf
. Cet hôte virtuel sera employé si aucun autre hôte virtuel ne correspond à la requête du client.
/etc/apache2/sites-available/
. Ainsi, la mise en place du domaine falcot.org
se résume à créer le fichier ci-dessous, puis à l'activer avec a2ensite www.falcot.org
.
Exemple 11.13. Fichier /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
dans les définitions des hôtes virtuels). Il est donc nécessaire de personnaliser le format de ce fichier pour y intégrer le nom de l'hôte virtuel. Pour cela, on ajoutera un fichier /etc/apache2/conf-available/customlog.conf
définissant un nouveau format (directive LogFormat
) et on l'activera avec a2enconf customlog
. Il faut également supprimer (ou passer en commentaire) la ligne CustomLog
du fichier /etc/apache2/sites-available/000-default.conf
.
Directory
destinés à paramétrer le comportement du serveur en fonction de l'emplacement du fichier servi. À l'intérieur de ce bloc, on trouve généralement les directives Options
et AllowOverride
.
Exemple 11.15. Bloc Directory
<Directory /srv/www> Options Includes FollowSymlinks AllowOverride All DirectoryIndex index.php index.html index.htm </Directory>
DirectoryIndex
précise la liste des fichiers à essayer pour répondre à une requête sur un répertoire. Le premier fichier existant est appelé pour générer la réponse.
Options
est suivie d'une liste d'options à activer. None
désactive toutes les options. Inversement, All
les active toutes sauf MultiViews
. Voici les options existantes :
ExecCGI
indique qu'il est possible d'exécuter des scripts CGI.
FollowSymlinks
indique au serveur qu'il doit suivre les liens symboliques et donc effectuer la requête sur le fichier réel qui en est la cible.
SymlinksIfOwnerMatch
a le même rôle mais impose la restriction supplémentaire de ne suivre le lien que si le fichier pointé appartient au même propriétaire.
Includes
active les inclusions côté serveur (Server Side Includes, ou SSI). Il s'agit de directives directement intégrées dans les pages HTML et exécutées à la volée à chaque requête.
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
active la négociation de contenu, ce qui permet notamment au serveur de renvoyer la page web correspondant à la langue annoncée par le navigateur web.
AllowOverride
donne toutes les options qu'on peut activer ou désactiver par l'intermédiaire d'un fichier .htaccess
. Il est souvent important de contrôler l'option ExecCGI
pour rester maître des utilisateurs autorisés à exécuter un programme au sein du serveur web (sous l'identifiant www-data
).
Exemple 11.16. Fichier .htaccess
requérant une authentification
Require valid-user AuthName "Répertoire privé" AuthType Basic AuthUserFile /etc/apache2/authfiles/htpasswd-prive
/etc/apache2/authfiles/htpasswd-prive
contient la liste des utilisateurs et leurs mots de passe ; on le manipule avec la commande htpasswd
. Pour ajouter un utilisateur ou changer un mot de passe, on exécutera la commande suivante :
#
htpasswd /etc/apache2/authfiles/htpasswd-prive utilisateur
New password: Re-type new password: Adding password for user utilisateur
Require
contrôle les restrictions d'accès à un répertoire (et ses sous-répertoires).
Require
sont combinées dans un bloc RequireAll
.
/etc/awstats/awstats.conf
. Les administrateurs de Falcot n'ont modifié que les différents paramètres donnés ci-dessous :
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
et LogFormat
indiquent l'emplacement du fichier de log et les informations qu'il contient. Les paramètres SiteDomain
et HostAliases
indiquent les différents noms associés au site web principal.
DNSLookup
à 1
comme dans l'exemple précédent. En revanche, pour les petits sites, ce réglage permet d'avoir des rapports plus lisibles qui emploient les noms complets des machines plutôt que leurs adresses IP.
/etc/awstats/awstats.www.falcot.org.conf
.
Exemple 11.18. Fichier de configuration AWStats pour un hôte virtuel
Include "/etc/awstats/awstats.conf" SiteDomain="www.falcot.org" HostAliases="falcot.org"
/usr/share/awstats/icon/
. Pour les rendre disponibles sur le site web, il faut modifier la configuration d'Apache et y ajouter la directive suivante :
Alias /awstats-icon/ /usr/share/awstats/icon/