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) 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.
/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 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 the 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 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-private file contains a list of users and passwords; it is commonly manipulated with the htpasswd command. For example, the following command is used to add a user or change their password:
#htpasswd /etc/apache2/authfiles/htpasswd-prive utilisateurNew password: Re-type new password: Adding password for user utilisateur
Require directive controls access restrictions for a directory (and its subdirectories, recursively).
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/