Leçon 7 / 15

Activer uniquement les modules requis

25 min Apache — héberger un site Gratuit

Objectif : Repérer et activer les modules nécessaires aux hôtes virtuels et à la réécriture.

Vous avez activé les deux fichiers d’hôtes virtuels et rechargé Apache après validation. La prochaine étape consiste à préparer le serveur à organiser certaines URL : pour cela, vous devez savoir quelle fonction fournit un module et vérifier que le module requis est réellement chargé.

Dans ce projet, les deux hôtes sont site.example.test et api.example.test. Comme vous l’avez vu dans « Déclarer un hôte virtuel pour enovatic.be », leur déclaration utilise des fonctions de base d’Apache ; vous n’avez pas à activer un module supplémentaire pour créer un bloc VirtualHost. En revanche, les règles de réécriture étudiées dans les prochaines leçons nécessitent le module mod_rewrite.

Comprendre le rôle d’un module

Un module Apache ajoute une capacité au serveur, par exemple la réécriture des URL ou la prise en charge de connexions TLS. Certains composants nécessaires au fonctionnement courant sont déjà présents dans l’installation ; d’autres peuvent être activés séparément. L’activation rend une capacité disponible, mais n’ajoute pas à elle seule une règle de réécriture à vos hôtes.

Sur Debian et Ubuntu, a2enmod active un module disponible dans l’installation. Pour cette étape, le seul module supplémentaire à préparer est rewrite. Les modules liés à HTTPS ne sont pas nécessaires à l’organisation actuelle des URL : leur activation sera abordée avec l’installation du certificat et la configuration HTTPS.

Vérifier puis activer mod_rewrite

Commencez par demander à Apache la liste des modules chargés. La commande suivante filtre cette liste pour afficher le nom du module de réécriture s’il est présent. Si elle ne renvoie aucune ligne, le module n’est pas chargé ; le code de sortie de grep peut alors être différent de zéro, ce qui est attendu dans ce cas.

Terminal
sudo apachectl -M | grep rewrite_module
Résultat attendu
rewrite_module (shared)

Si le résultat attendu apparaît, ne relancez pas l’activation : vous pouvez passer directement au test de configuration. Si le module est absent, activez-le avec a2enmod rewrite. Cette commande prépare le chargement du module pour Apache ; elle ne remplace ni le test de syntaxe ni le rechargement du service.

Terminal
sudo a2enmod rewrite
sudo apachectl configtest
Résultat attendu
Enabling module rewrite.
Syntax OK

Appliquer la règle de validation

La configuration du projet a déjà été validée et Apache rechargé à la fin de la leçon précédente. Après toute activation de module, testez à nouveau la configuration avant de recharger : un résultat Syntax OK permet de poursuivre. Si le test signale une erreur, ne rechargez pas ; lisez le message, corrigez le problème, puis relancez le test.

Terminal
sudo apachectl configtest
sudo systemctl reload apache2
sudo apachectl -M | grep rewrite_module
Résultat attendu
Syntax OK
rewrite_module (shared)

Le dernier affichage confirme que le module est chargé après le rechargement. Sur les systèmes où le service porte un autre nom, adaptez la commande de gestion du service à votre installation. Vous n’avez modifié ni les fichiers propres aux hôtes virtuels ni la configuration globale ; la prochaine leçon expliquera ce que signifie réécrire une URL, sans encore définir de règle pour le site.

À retenir

  • Un module ajoute une capacité à Apache ; les hôtes virtuels courants n’exigent pas d’activer un module supplémentaire.
  • La réécriture des URL du projet nécessite mod_rewrite.
  • Vérifiez les modules chargés avec apachectl -M.
  • Sur Debian ou Ubuntu, activez le module absent avec a2enmod rewrite.
  • Après l’activation, exécutez apachectl configtest et ne rechargez Apache qu’après Syntax OK.

Envie d'aller plus loin ?

Les cours Enovatic sont gratuits et le resteront. Si vous cherchez un accompagnement encadré, nos formations professionnelles sont animées par les mêmes formateurs.